Dependencies:
	- C++
		- Libraries
			- ostream
			- stdio.h
			- stdlib.h
			- time.h
			- iomanip
			- fstream
			- string
			- sstream
			- string.h
			- Math.h
	- Python 2.7.11
		- Packages:
			- sys
			- os
			- shutil
			- getopt
	- R
		- Libraries:
			- Knitr (https://cran.r-project.org/web/packages/knitr/index.html)
			- Markdown (https://cran.r-project.org/web/packages/markdown/index.html)
	- GNU automake

Using Precompiled Binaries:
	- Simply copy or move the precompiled binary for open source linux or ppc64le from:

		- /path/to/FEZ_1.0/precompiled/x86/fez
		or
		- /path/to/FEZ_1.0/precompiled/ppc64le/fez

		to the binary directory at: 
		
		- /path/to/FEZ_1.0/bin/

		then continue to setup

		example:
			$ cp /path/to/FEZ_1.0/precompiled/x86/fez /path/to/FEZ_1.0/bin/

Installation From Source:
	Simply type the following instructions from the FEZ_1.0 home directory:
	
		./configure
		make	

	The above instructions will compile the files in the src directory then copy the "fez" binary into the bin directory.
	Then continue to setup.

	Compile on non- x86 platform like Power8/9. 
		
		autoconf
		./configure 
		make	
	

Setup:
	- Using your preferred text editor, in controller.py add the absolute path in 'program_path = ""'
	- it should look like the example below.

		example:
			before: program_path = ""
			after : program_path = "absolute/path/to/directory/FEZ_1.0/"

Usage:
	It is important to note that although the fez binary is easily created, it requires specific usage that is easly accessible
	via the Python controller at absolute/path/to/directory/FEZ_1.0/controller.py. Simple typing:

	controller.py -h

	will output the following help message. 

		controller.py -x <rows> -y <cols> -t <treeReplacements> -n <numsp> -e <exclusion> -f <forceReplacements> -c <numCsvs> -i <iterations> -s <numSnapshots>
 		[Options Required]
		 -x      The number of rows for the landscape
		 -y      The number of cols for the landscape
		 -t      The number of tree replacements the simulation will run for
		 -n      The initial number of species placed on the landscape
		 -e      The exclusion zone that each tree will have (0, 1, 9, or 25)
		 -f      The chance that a tree will replace even if there's a matching tree in the exclusion zone
		 -c      The number of csv that will be generated
		 -i      The number of simulations with these parameters that will run on a single thread
		 -s	 The number of snapshots that will be taken

   		Example: controller.py -x 600 -y 600 -t 100000000000 -n 1000 -e 1 -f 5 -c 200 -i 1 -s 10000
	
	In the "runs" directory there is a Makefile to assist you in setting up and running FEZ jobs.
	Simply point the FEZ_PATH at the path to controller.py.
	Graphical HTML output from jobs started in the runs directory will be binned in /runs/html_output.

Parameters - More information:
	The landscape dimension parameters (-x, -y) are used to define the two dimensional matrix which will be used to store the landscape in FEZ runs. 
	The FEZ algorithm takes the inputted parameter and adds an additional 20% + 20 rows and columns to the final landscape generated. This is used
	to reduce the impact of edge cases and deadzones. Make sure that this landscape will fit into memory.
                 -x      The number of rows for the landscape
                 -y      The number of cols for the landscape
	
	The tree replacements paramter (-t), is how many "years" or successful tree replacements will occur before the FEZ simulation completes. A tree
	replacement is simply the death and replacement of an tree based on the user inputted parameters. 
                 -t      The number of tree replacements the simulation will run for

	The initial number of species  parameter (-n) is the number of unique species placed on the landscape when the simulation begins.
                 -n      The initial number of species placed on the landscape
                 
	The exclusion parameter (-e) is how large of an area around a dead tree he FEZ simulation will check for trees of the same species.
	This value has to  be one of the four following values (0, 1, 9, or 25). 
		 -e      The exclusion zone that each tree will have

	The forced replacement parameter (-f) is the % change that a tree will replace even if there is a matching tree in the exclusion zone. 
	This value cannot go below 1% to prevent simulations from never ending.
                 -f      The chance that a tree will replace even if there's a matching tree in the exclusion zone
                 
	The number of CSVs parameter (-c) is the number of CSVs that will be generated over the course of a FEZ run, spaced equidistantly from eachother. To get the most accurate results
	try to make this number divide easily into the number of tree replacements. The FEZ simulation will actually add one extra CSV named tree_0.csv used to store the initial landscape
	state. Each value in the CSVs will correspond to a cell in the landscape.
		-c      The number of csv that will be generated

	The iterations parameter (-i) is the number of FEZ simulations that will occur on a single thread. These runs will run sequentially so this value will almost always be set to 1.
                 -i      The number of simulations with these parameters that will run on a single thread

	The snapshots parameter (-s) is the number of snapshots that will be taken over the course of the simulation. Snapshots quickly count how many species have gone extinct since the
	beginning of the simulation and output that information to extinction.txt. This information is then added to the final graphical HTML output. The snapshot parameter, much like 
	the CSVs parameter will generate the user specified number of equidistantly placed snapshots throughout the simulation. So make sure that the number divides nicely into the tree
	replacements for the most accurate results.
                 -s      The number of snapshots that will be taken
