Skip to main content
Help us improve Python packaging – donate today!

Numerical integration technique

Project Description

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.

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.

Release history Release notifications

This version
History Node

0.13.3

History Node

0.13.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
cubature-0.13.3-cp35-cp35m-win_amd64.whl (20.9 MB) Copy SHA256 hash SHA256 Wheel 3.5 May 30, 2017
cubature-0.13.3.tar.gz (133.0 kB) Copy SHA256 hash SHA256 Source None May 30, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page