Adding Boost support

The Boost libraries are a set of high-quality peer-reviewed c++ libraries written and maintained by excellent programmers.

Boost offers both a convenient interface to create c++/c written Python modules and an implementation of the elliptical integrals of the third kind.

Boost support is mainly an issue of speed. A major part of the evaluation of the transit model is evaluating elliptic integrals. This can conveniently be done, using the mpmath module, which is written in pure Python. Yet, the evaluation is much faster, if the Boost library is applied.

How can Boost support be activated?

To enable boost support, unfortunately, a little bit of manual work is needed. This may require some knowledge about compiling c++ code and the Boost libraries in particular. In the palTrans directory of the source distribution of PyAstronomy, you will find the ellint subdirectory, which contains two files ell.cpp and a makefile_template.

First you have to adapt the makefile_template to contain the library paths appropriate for your system; then rename the makefile_template and call in “makefile”. Compiling the ell.cpp file using the makefile, produces a shared object library ell.so, if successful. This library file has, finally, to be copied to the installation directory of PyAstronomy.modelSuite.palTrans so that it can be imported by this module.

You can use the whichEllInts() method of the PalLC class to check whether Boost support is present.