Difficult hardware and software requirements, lots of pre-requisites.
From http://chroma.bitbucket.org/install/details.html
Derivative based error propagation.
simon:chroma blyth$ find . -name '*.*' -exec grep -l uncertainties {} \;
./chroma/benchmark.py
./chroma/histogram/histogram.py
./chroma/histogram/histogramdd.py
./chroma/likelihood.py
./chroma/parabola.py
./setup.py
./test/test_parabola.py
PyUblas provides a seamless glue layer between Numpy and Boost.Ublas for use with Boost.Python
BLAS : Basic Linear Algebra Subprograms
simon:chroma blyth$ find . -name '*.*' -exec grep -l pyublas {} \;
./chroma/generator/g4gen.py # imported but unused here ?
./doc/source/chroma-setup.py
./doc/source/chroma-setup.sh
./setup.py
./src/G4chroma.cc
118 #include <boost/python.hpp>
119 #include <pyublas/numpy.hpp>
120
121 using namespace boost::python;
122
123 pyublas::numpy_vector<double> PTA_GetX(const PhotonTrackingAction *pta)
124 {
125 pyublas::numpy_vector<double> r(pta->GetNumPhotons());
126 pta->GetX(&r[0]);
127 return r;
128 }
Python layer ontop of SDL, used for GUI and “game” control.
Pygame is implemented as a mixture of Python, C and Assembler code, wrapping 3rd party libraries with CPython API interfaces.
simon:chroma blyth$ pwd
/usr/local/env/muon_simulation/chroma/muon_simulation/chroma
simon:chroma blyth$ find . -name '*.py' -exec grep -l pygame {} \;
./chroma/__init__.py # does not insist on pygame available
./chroma/camera.py # used for GUI, keyboard event handling
./doc/source/chroma-setup.py # brittle yum/apt/pip/cmake based installer for most everything
./setup.py
Underlying ZeroMQ is now auto-built by the python setup.py installation, no longer need pyzmq-static.