4 releases
| 0.1.2 | Jan 23, 2026 |
|---|---|
| 0.1.1 | Jan 21, 2026 |
| 0.1.0 | Jan 20, 2026 |
| 0.1.0-rc.2 | Jan 10, 2026 |
#705 in Math
Used in 3 crates
260KB
5.5K
SLoC
quantrs2-symengine-pure
Pure Rust symbolic mathematics library for quantum computing.
Overview
quantrs2-symengine-pure provides symbolic computation capabilities for the QuantRS2 quantum computing framework. Unlike C++-based alternatives, this crate is implemented entirely in Rust, ensuring portability and seamless integration with the Rust ecosystem.
This crate uses egg (e-graphs good) for advanced expression simplification via equality saturation.
Features
- Pure Rust: No C/C++ dependencies, fully portable across all platforms
- Symbolic Expressions: Create and manipulate symbolic mathematical expressions
- Automatic Differentiation: Compute symbolic gradients and Hessians
- E-Graph Optimization: Advanced expression simplification via equality saturation
- Quantum Computing: Specialized support for quantum gates, operators, and states
- SciRS2 Integration: Seamless integration with the SciRS2 scientific computing ecosystem
- Arbitrary Precision: Support for rational and big integer arithmetic
Installation
Add to your Cargo.toml:
[dependencies]
quantrs2-symengine-pure = "0.1.2"
Quick Start
use quantrs2_symengine_pure::Expression;
// Create symbolic expressions
let x = Expression::symbol("x");
let y = Expression::symbol("y");
// Perform operations
let expr = x.clone() * x.clone() + x.clone() * 2.0 * y.clone() + y.clone() * y.clone();
let expanded = expr.expand();
// Compute derivatives
let dx = expr.diff(&x);
println!("Expression: {}", expr);
println!("Derivative wrt x: {}", dx);
Modules
| Module | Description |
|---|---|
expr |
Core symbolic expression types |
diff |
Automatic differentiation |
eval |
Expression evaluation |
simplify |
Expression simplification |
optimization |
E-graph based optimization |
parser |
Parse strings to expressions |
matrix |
Symbolic matrix operations |
quantum |
Quantum-specific symbolic types |
cache |
Expression caching |
serialize |
Serialization support |
Feature Flags
| Feature | Default | Description |
|---|---|---|
simd |
Yes | SIMD acceleration via scirs2-core |
parallel |
Yes | Parallel operations via scirs2-core |
serde |
No | Serialization support |
Policy Compliance
This crate follows QuantRS2/COOLJAPAN policies:
- Pure Rust Policy: No C/C++/Fortran dependencies
- SciRS2 Policy: Uses
scirs2-corefor complex numbers, arrays, and random generation - COOLJAPAN Policy: Uses
oxicodefor serialization (not bincode) - No unwrap Policy: All fallible operations return Result types
Part of QuantRS2
This crate is part of the QuantRS2 quantum computing framework.
License
Licensed under either of:
- MIT License
- Apache License, Version 2.0
at your option.
Author
COOLJAPAN OU (Team Kitasan)
Dependencies
~41MB
~847K SLoC