|
Theoretica
Mathematical Library
|
A C++ math library for scientific computing with a simple and elegant interface.
Written in modern C++, Theoretica provides a comprenhensive suite of numerical methods designed for high-performance scientific computing, without the complexity and steep learning curve typically associated with numerical and performance-critical software.
From simulating complex physical systems, to building machine learning models from scratch, Theoretica offers the speed of C++ with the readability of Python.
If you'd like to join us, to learn or to bring your expertise, make sure to read the Onboarding Guide and the Contributing Guide. Your help is valuable!
Theoretica is constantly developed and improved with new ideas!
Theoretica handles the heavy lifting across multiple scientific domains:
On each commit, tests are run and documentation is built and deployed online. This ensures that the library works correctly and the documentation is always up-to-date.
The following code solves a differential equation, such as the Lorenz attractor:
You can find many more examples in the examples folder.
Theoretica is a header-only library and has no dependencies, so you can include it in your projects straight-away! 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 base modules.
You can also compile tests and example programs using Make (make test and make examples) or using CMake:
The documentation for the project is available here. The documentation is written using Doxygen syntax alongside the source code and the online version is automatically updated on each commit. The bibliography used during research for the library is listed in the Bibliography. To learn more about the design choices behind the library, you can read the RFC documents in this folder.
We believe that the best scientific software is built by communities. Whether you are a mathematician, programmer, physicist or student, there is a place for you here.
How you can make an impact:
good first issue labels. We are always looking for new solvers, optimizations and features.Have a look at the Contributing Guide to learn more!
The project is currently under the GNU Lesser General Public License 3.0. You may learn more about it here.