
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
	
	
	CHOREOSIM install/uninstall 
	
	1. This step needs a C++ compiler. Unzip the archive file choreosim.tar.gz and then 
	edit the makefile to put the adequate C++ compiler (by default it is g++). Then 
	run "make all" for generating the executable.
	2. For uninstalling, run "make clean" or delete the compiled files.
	
	 
	CHOREOSIM usage
	
	For simulating a model run the command ./choreosim n dt modelfile datafile where 
	modelfile and datafile refer to a model and data for a choreography, dt is a 
	real value and n is the number of simulation loop.
	
	CHOREOSIM model format
	
	The model file has 5 blocks, each composed of a set of declarations.
	- The first block declares all choreographies nodes. Each node has an id, type, pool and mode.
	- The second block declares the relations between nodes. For instance 1 3 4 indicates that 
	the node 3 (3 is the id) has 1 successor that is the node 4;  3 5 6 7 11 means that Node 5 has two 
	successors that are Nodes 6, 7 and 11. 
	- The third block declares for each OR-SPLIT connector, the corresponding OR-JOIN connector
	For instance 8 12 means that the OR-SPLIT connector 12 has node 8 as OR-JOIN connector
	- The fourth block declares relations between nodes of distinct pools. Declarations are made
	as in the second block
	- The fifth block indicates for each XOR connector that ends a loop, the starting node 
	for the loop. For instance  12 6 means that there is a loop, starting on the node 6 and 
	ending on node 12.
	
	Before each block, the number of declarations that it contents must be specified.
	
	CHOREOSIM data format
	
	The data format gives the nodes SRT value following the declaration order. Then it gives 
	messages sending, transit and receiving times and finally the number of loops. 
	
	
	
	Author: Yanik Ngoko, 18 Mai 2012.