Theoretica
A C++ numerical and automatic mathematical library
|
A C++ math library for scientific computing with a simple and elegant interface.
Theoretica provides methods for scientific computing, statistical analysis of experimental data and numerical approximations. The aim of the project is to give simple and immediate access to powerful algorithms for scientific and engineering software and graphical applications. The library is tested using Chebyshev, a unit testing framework specifically developed for scientific and numerical software.
Some features of the library include:
Theoretica is constantly developed and improved with new ideas!
Theoretica is a header-only library and has no dependencies, so you can include it in your projects straight-away! You can build all tests and example programs by running make all
in the main folder, ensuring that it works on your machine. When using the library, you can include single headers or use theoretica.h
which includes all library headers (you can define THEORETICA_INCLUDE_BASE
to make it include only fundamental headers).
You can compile this simple code to check your setup:
The examples
folder contains simple programs that showcase usage of the library:
The documentation for the project is available at this link. The documentation is written using Doxygen syntax alongside the source code and the website is automatically updated on each commit. The HTML documentation is also available for download in the gh-pages
branch. The bibliography used during research for the library is listed in BIBLIOGRAPHY.md. You may learn more about the design choices behind the library reading the Software Specification.
Contributions are welcome and appreciated! Have a look at the Contributing Guide to learn more about how you can help. Contributions include writing code and documentation, testing and researching algorithms.
Theoretica uses automated workflows for recurring tasks. On each commit to master
, tests are run on Linux, Windows and MacOS, benchmarks are launched and documentation is built and deployed to the online website. This ensures that the library works correctly and the documentation is always up-to-date.
The project is currently under the GNU Lesser General Public License 3.0. You may learn more about it here.