Theoretica
A C++ numerical and automatic mathematical library
|
A C++ math library for scientific computing with a simple and elegant interface.
Theoretica provides access to numerical methods with applications in science and engineering, is easy to setup and use, and is completely open source. Applications include scientific computing, statistical analysis of data and numerical approximation. The library is tested using Chebyshev, a unit testing framework specifically developed for scientific and numerical software.
The following code solves a differential equation, such as the Lorenz attractor, and writes the result to file:
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. To use the library, you can include single headers or use theoretica.h
which includes all modules, or alternatively include theoretica_mini.h
which includes only common use modules.
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.