Author: | Daniele Tomatis |
---|---|
Date: | 02/05/2017 |
Piece-wise Polynomial Package for multivariate interpolation of real-valued scalar functions.
This package offers representations of multi-dimensional functions using piece-wise polynomials. Python handles memory management, whereas external FORTRAN libraries perform all the numerics in order to ensure high computational performances with a large amount of data.
The main FORTRAN library is an improved version of the original Fortran77 routines first developed by Carl de Boor and still available on netlib. They are also contained in this package. Some of the routines were later translated to FORTRAN90 by John Burkardt. Finally, Daniele Tomatis modified the sources to fully comply with standard FORTRAN90; code upgrade with the latest FORTRAN 2018 norm is expected in future versions. Other numerical libraries addressing interpolation problems and approximation theory are available with this package.
All external FORTRAN libraries are in the folder src
. The folder pppack/lib
contains the Python extensions of the numerical FORTRAN libraries (as shared objects). Use tools/wrap.sh [libname]
where libname
is a numerical library available in src
to obtain the corresponding Python extension.
The documentation is produced by Sphinx using the math ReST directive in Python docstrings. Additional sphinx-extensions are used, see the list of required packages in the file setup.py
. Enter the folder docs
and execute make html
to build the documentation in HTML format, then open the page _build/html/index.html
with the browser.
This package is hosted on PyPI, with the documentation published on ReadTheDocs.org.
To retrieve the development version:
$ git clone https://github.com/ndarmage/pppack.git
To install the package:
$ pip install .
or get it directly from PyPI,
$ pip install pppack
To compile only the Fortran extensions:
$ python setup.py build_src build_ext --inplace
Users can select different Fortran compiler by adding config --fcompiler=gnu95
before build_ext
(replace gnu95
with your compiler after checking the available choices with f2py
).
Please send bug reports, patches and other feedback to Daniele Tomatis.
The main contributions featuring the released versions are displayed in the following table.
Version | Date | Author(s) | Description |
---|---|---|---|
v1.2.0 | 21/06/2022 | Dinh Nguyen, Daniele Tomatis | upgrade of the package using only distutils on Python v3.9 |
v1.1.0.post1 | 09/04/2021 | Daniele Tomatis | port pppack to Win10; enforce PEP8 norm in py modules. |
v1.0.0 | 02/05/2017 | Esteban Szames | implementation of a few tests from Carl De Boor's book. |