-
Notifications
You must be signed in to change notification settings - Fork 13
Documentation
-
buildempty folder to be used for building executables -
cfgcontains configuration files for initialising parameters for the stand-alone executable -
doccontains files for generating Doxygen documentation -
envcontains data files for problem environments -
libcontains third-party libraries for random number generation, unit testing, pybind, etc. -
pythoncontains example Python scripts -
python/notebookscontains jupyter notebook examples -
testcontains unit tests -
xcsfcontains XCSF source code -
xcsf/utilscontains Python utilities for visualisation, etc.
To build locally see Compiling and Running.
The github-pages contains prebuilt documentation, including:
The main data structure XCSF located within xcsf.h is passed to almost all functions, enabling access to parameters. This structure directly contains general parameters, e.g., double BETA; which can be accessed with xcsf->BETA. It also contains sub-structures containing groups of parameters, e.g., for the EA with struct ArgsEA *ea;
The sub-structures containing groups of parameters are:
- Condition parameters defined within
struct ArgsCondlocated withincondition.h. - Action parameters defined within
struct ArgsActlocated withinaction.h. - Prediction parameters defined within
struct ArgsPredlocated withinprediction.h. - EA parameters defined within
struct ArgsEAlocated withinea.h.
Every parameter needs the following tasks implemented:
- setting the parameter value - this provides a single point at which the values change and minimums and maximums can be defined to help users and avoid undefined behaviour;
- setting the default parameter value;
- exporting the parameter as a JSON formatted string;
- importing the parameter with a JSON string;
- printing the parameter value (using the JSON export function);
- saving the parameter value to persistent storage;
- loading the parameter value from persistent storage;
These functions for general parameters are defined within param.c. For the above-mentioned sub-structures, the functions are located within the respective *.c files. These can then be accessed through the XCSF structure, e.g., xcsf->cond->bits.
Finally, to enable the parameters to be set by Python, they may also need to be added to pybind_wrapper.cpp.
This project is released under the terms of the GNU General Public License v3.0 (GPLv3).