Numerical integration technique
Project description
Cubature
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cubature-0.13.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbe830fcd1fbe22abf76f32a0fedea0291eca36ee5172af6bb850a7ded164589 |
|
MD5 | 378551e9e5dd219e9d5878fffb5ac7d1 |
|
BLAKE2b-256 | 144b5814eea2b44f049e68ba28dfacc29dd8d916aeb8a9b26e9e19aa8d8f01fc |