3 releases
0.1.2 | Oct 25, 2022 |
---|---|
0.1.1 | Sep 26, 2022 |
0.1.0 | Sep 10, 2022 |
#12 in #symbolic-math
92KB
1.5K
SLoC
SymOxide: Intermediate Representation and Transformations for Computer Algebra Systems
SymOxide has taken many design decisions from Pymbolic and could be called as Rust-rewrite of Pymbolic. Symoxide does indeed lead to faster expression traversals with similar LOCs in the downstream.
Links
- Add a dependency as
cargo add symoxide
. - Read the documentation at https://docs.rs/symoxide/.
- Source-code, Issue Management at https://github.com/kaushikcfd/symoxide.
lib.rs
:
Symoxide provides an Intermediate Representation for Scalar Expressions and abstract visitors (called as mappers) for traversing and transforming these expressions.
primitives
contains the supported expression types.builders
contains routines to build these expressions.- [
mod@parse
] contains a parser implementation for these expressions. operations
provides routines for performing common arithmetic operations on these expressions.mappers
provides abstract visitor for common traversal patters over scalar expressions.mapper_impls
usesmappers
to provide helpful analysis tools over the expressions.design_doc
goes over the key design decisions that were baked into Symoxide's architecture.
Dependencies
~11–22MB
~339K SLoC