FFpopSim is developed to work on 32 or 64 bit machines running Linux or Mac OSX.
The basic library is written in C++ and can be used and extended independently
of the Python bindings.
The Python bindings are also distributed as ready-to-use binary files (see
Install); you can still build the library yourself though, if you prefer
to do so.
- On Linux, FFPopSim is expected to be compatible with all distributions, provided
they are up to date (glibc 2.14 recommended).
- On Mac OSX, only Intel CPUs are expected to work, and only Mac OSX 10.6 or
later. If you have an earlier Mac computer, you can still try to build the
library yourself (see Install), but that might fail.
- Python 2.7 (no Python 3 support yet): older Python versions will never be
supported, but Python 3 might become so in the future. If you have only Python
2.6 or earlier, consider using the EPD Python distribution or updating your
- NumPy 1.6: if your Python distribution has only NumPy 1.5 or earlier,
consider using the EPD Python distribution, building FFPopSim from source, or
updating your system. It is recommended to import numpy explicitely before
using the library, as shown in the examples.
- matplotlib is used in the plot functions. As long as you do not call those
functions, you can live without it. However, it is recommended to import it
explicitely before using the library, as shown in the examples.
The Enthought Python Distribution (EPD) is a widely used and
well-maintained Python environment that provides all necessary
Python packages for running FFPopSim, including a recent NumPy
version (but no GSL and BOOST). A basic EPD version is available
for free at the following website:
In order to build the Python bindings to FFPopSim, you need the following programs:
- a C++ compiler, e.g. GCC
- Python 2.7+ (no Python 3 support yet), including header files
- NumPy, including header files and shared libraries
- GSL, the GNU Scientific library
- BOOST, the C++ extension library
- an implementation of Make, e.g. GNU Make
- distutils, a library for installing Python packages
In addition, if you modify the sources and want to regenerate the Python bindings, you
will need the following programs:
- SWIG, the Simplified Wrapper and Interface Generator
Finally, if you want to rebuild the documentation, you will need the following programs:
- Sphinx, the Python documentation generator, for Python 2.x
The building process has been tested on Python 2.7, Numpy 1.6, gcc 4.7, gsl 1.15, boost
1.50. The regeneration part has been tested on SWIG 2.0. The documentation has been
created with Sphinx 1.1.