This website, a personal project, was created from scratch using SciTE and static HTML4.01/CSS. The visual inspection an debuging is taking place using Opera 11.01.
Please let me know (at email@example.com) if you find errors in the pages or the website does not render properly in your viewing device/browser.
πMath will be a math package to implement linear algebra methods and algorithms. It aims to provide vector and matrices based on abstract classes to aid the implementation, research and debugging of numerical analysis algorithms.
Using πMath the programmer should be able to develop his algorithm (test and debug) without the need to compile or install external libraries. If the algorithm needs to be optimized (e.g. memory usage, speed, accuracy) the programmer should be able to create new backends and transparently switch the vector and matrix classes to others that has these desired properties (e.g. numpy or mpmath). Ideally, this transition should take place with very small changes in the core implementation of the algorithm. πMath will attempt to approximate this ideal.
To achieve these goals the projects development will be concentrated on the following challenges:
- Pure python: The methods implemented using πMath should work without any dependency to external libraries or packages.
- Dense and Sparse: Dense and sparse matrices should be transparently supported.
- Transparent Multi-processing: The package should detect and use theavailability of multiple cores (where it is safe to do so).
- Wrap external libraries Alternative back-ends 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 TestingThe library should provide classes with embedded logging and debugging capabilities to test, validate and benchmark code.