Overview

#-- coding: UTF-8 --

πMath

πMath is a math package to implement linear algebra methods and algorithms. It provides vector and matrices based on abstract classes to aid the implementation, research and debugging of numerical analysis algorithms.

Goals

Pure python:
The methods implemented using πMath should work without any dependency to external libraries or packages.
Dense and Sparse:
Dense and sparse matrices are natively and transparently supported
Transparent Multi-processing:
The package should detect and use the availability of multiple cores (where and when it is safe to do so).
Wrap external libraries:
Alternative backends can be registered using wrapper classes in order to utilize their speed and accuracy (e.g. numpy or mpmath). In a similar manner a wrapper should be provided that would allow manipulation of matrices mapped into files (e.g. through pytables).
Debugging and Testing:
The library should provide classes with embedded logging and debugging capabilities to test, validate and benchmark code.

Setup

python setup.py test python setup.py install

Documentation

http://www.itziakos.gr/projects/pimath/

Contributors

Maintainer: Ioannis Tziakos

Acknowledgements

Functions to compare floats

  • Floating point comparison function Code was addapted from the Stack.Overflow question 3049101 File: other/floatcmp.py License: cc- wiki Author: Eric L. Frederich
  • Blas sum_of_squares function The implementaton is based on the fortan function DLASSQ (SRC/dlassq.f) from the LAPACK library. File: other/lapacksumsq.py (Check file for original code license)
  • Accurate summation Code was addapted from the ActiveState recipe 393090 File: other/summation.py License: PSF Author: Raymond Hettinger
  • Text progress bar object Code was addapted from the ActiveState recipe 168639 License: PSF File: other/progressbar.py Authors: Randy Pargman (original), Kelvie Wong (1 revision)