A fast C++ symbolic manipulation library with optional wrappers for Python, Julia, Ruby, Haskell, and other languages.
SymEngine is a fast symbolic manipulation library written in C++, designed for high-performance mathematical expression handling. It provides core symbolic computation capabilities that can be integrated into various programming languages through optional thin wrappers. The library solves the need for efficient and extensible symbolic mathematics in scientific computing, engineering, and research applications.
Developers and researchers working on scientific computing, computer algebra systems, or mathematical software who require high-performance symbolic manipulation. It is particularly useful for those building or extending tools in Python, Julia, Ruby, Haskell, or C that need efficient symbolic math engines.
Developers choose SymEngine for its speed and flexibility, as it offers a optimized C++ core with permissive licensing and easy integration via language wrappers. Its unique selling point is the combination of high performance, thread safety options, and support for external libraries like GMP and FLINT, making it a robust foundation for symbolic computation projects.
SymEngine is a fast symbolic manipulation library, written in C++
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Optimized C++ implementation ensures fast symbolic operations, as emphasized in the README's focus on speed and benchmarks for scientific computing.
Thin wrappers for Python, Julia, Ruby, Haskell, and C enable easy integration, such as symengine.py for Python, allowing usage across diverse ecosystems.
Seamlessly integrates with SymPy and Sage, as noted in the README, providing enhanced symbolic capabilities for existing scientific workflows.
CMake configuration with options for thread safety, external libraries, and optimization allows customization, such as enabling WITH_SYMENGINE_THREAD_SAFE for concurrent applications.
MIT license with BSD for third-party code ensures flexibility for commercial and open-source use, facilitating adoption in various projects.
The build requires managing numerous CMake options and external dependencies like GMP and MPFR, which can be daunting, as highlighted in the installation section with detailed prerequisite steps.
Focused on core symbolic manipulation, it lacks built-in support for advanced topics like graphical plotting or specialized solvers, requiring integration with other libraries for full CAS functionality.
Documentation is geared towards developers familiar with C++ and symbolic math, with tutorials on symengine.org but limited step-by-step guides for newcomers, potentially increasing the learning curve.