Symbolica 2.0: programmable symbols, JIT evaluators, and type-erased callbacks in Rust

82 points revelation60 13 comments

I just released the next major version of Symbolica, a symbolic computation library written in Rust that is used by multiple research groups.

The release post covers the user-facing improvements to the Rust API, such a new builder-style methods, JIT-backed evaluators, double-float arithmetic, and programmable symbols with custom normalization, derivative, series, printing, and evaluation hooks.

I also discuss a Rust design pattern that I thought you might find interesting. Symbolica stores user-defined numerical evaluation callbacks for different numeric domains using `TypeId`, `Any`, and trait objects.

Let me know what you think!