Introduction
Symbolica 2.0 marks a significant advancement in symbolic computation for Python and Rust. Focusing on programmable symbols, Symbolica now allows for extensive customization of mathematical expressions, facilitating their simplification, differentiation, expansion, and evaluation.
Improved Rust API
One of the most visible improvements concerns the Rust API, which has been streamlined. By using a new prelude, developers can avoid importing numerous modules and benefit from shorter type paths. Additional operator overloads, automatic type conversions, and builder-style patterns make using Symbolica more intuitive.
Usage Example
Let's take a simple example:
``rust use symbolica::prelude::*; fn main() { let (x, y, f) = symbol!("x", "y", "f"); let e: Atom = 2 + (x + 1).pow(-2) + f.call((1 + y, y)) / 3; let s = e.series(x, 0, 1).unwrap(); println!("{e}"); } ``
This snippet demonstrates how to define symbols, create an expression, and compute a series, all with clear and concise syntax.
Programmable Symbols
The standout feature of Symbolica 2.0 is its ability to make symbols programmable. This means users can create mathematical objects that behave like built-in functions.
Practical Applications
Imagine a scenario where you need to compute Jacobians or perform complex numerical integration. With Symbolica, these tasks become easier thanks to customizable symbols that can be tailored to specific needs.
Evaluators and JIT Compilation
Symbolica 2.0 also introduces more robust evaluators that allow transitioning from expression trees to compiled kernels. With Just-In-Time (JIT) compilation, computations can be optimized in real-time, providing enhanced performance for heavy operations.
Double-Precision Arithmetic
For applications requiring high precision, Symbolica now offers double-precision arithmetic. This is crucial for scientific calculations where precision cannot be compromised.
Upcoming Features
Symbolica doesn't plan to stop here. Future updates promise to integrate more special mathematical functions and further improve symbol manipulation.
Conclusion
Symbolica 2.0 is a powerful tool for developers looking to optimize their symbolic and numerical computations. With its programmable symbols and performance enhancements, it stands as a must-have reference.
Let's discuss your project in 15 minutes.