Python wrapper for the Cubature algorithm explained in: http://ab-initio.mit.edu/wiki/index.php/Cubature
C Other
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cubature
doc
examples
.bumpversion.cfg
.gitignore
.travis.yml
README.rst
ROADMAP.rst
cubature_logo.png
distribuite.bat
profile_cubature.py
setup.py
test_cubature.py
test_internal.py

README.rst

https://raw.github.com/saullocastro/cubature/master/cubature_logo.png

Cubature

Build status

Coverage

What is Cubature?

It is a numerical integration technique. From MathWorld, Ueberhuber (1997, p. 71) and Krommer and Ueberhuber (1998, pp. 49 and 155-165) use the word "quadrature" to mean numerical computation of a univariate integral, and "cubature" to mean numerical computation of a multiple integral.

Documentation

Please, see the module documentation here.

Python wrapper for the Cubature package

From the Nanostructures and Computation Wiki at MIT, Steven W. Johnson has written a simple C package for adaptive multidimensional integration (cubature) of vector-valued functions over hypercubes and this is a Python wrapper for the referred C package.

Installation

If you are changing _cubature.pyx, you must have Cython installed in order to create a new _cubature.c file (the same is valid for _test_integrands.pyx). The setup.py script will automatically try to use the Cython compiler first.

Install to Python's site-package

To install in the site-packages directory and make it importable from anywhere:

python setup.py install

Install to a customized site-package

Windows:

set prefix=anydirectory
set PYTHONPATH=%anydirectory%\Lib\site-packages;%PYTHONPATH%
mkdir %anydirectory%
python setup.py install --prefix="%anydirectory%"

Linux:

export prefix=anydirectory
export PYTHONPATH=$anydirectory/Lib/site-packages;$PYTHONPATH
mkdir $anydirectory
python setup.py install --prefix=$anydirectory

It will create an .egg file that will go to $anydirectory\Lib\site-packages. This file can be unzipped to obtain the importable module, OR, the full path to this .egg can be added to $PYTHONPATH (which can be also done inside a script through sys.path.append().

Build locally

If you want to build it locally (without installing in Python's site-packages) just type:

python setup.py build_ext --inplace clean

Running the tests

The Python wrapper has been proven using test integrands from the C package and some additional testing functions from Genz. The integrands were implemented in Cython and verified with Mathematica.

After building cubature, run the unit tests with the `pytest` package in the package directory. Be aware that this takes several minutes:

python -m pytest test_cubature.py

Examples

Some examples are given in ./examples.

Fork me!

You are welcome to fork this repository and modify it in whatever way you want. It will also be nice if you could send a pull request here in case you think your modifications are valuable for another person.

License

This wrapper follows the GNU-GPL license terms discribed in the C Package.