|
Theoretica
Scientific Computing
|
A C++ math library for scientific computing with a simple and elegant interface.
Written in modern C++, Theoretica is a comprehensive suite of numerical methods designed for high-performance scientific computing, focusing on elegance and simplicity, lowering the learning curve typically associated with such software.
Across many applications in science and data analysis, Theoretica offers the speed and robustness 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:
There's also a new experimental GUI module being developed, for visualizing results directly in your code.
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. Regardless of your background, your participation is valuable.
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.