quantrs2-symengine-pure
Pure Rust symbolic mathematics library for quantum computing. 333 public APIs, 0 stubs.
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:
[]
= "0.2.0"
Quick Start
use Expression;
// Create symbolic expressions
let x = symbol;
let y = symbol;
// 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;
println!;
println!;
Modules
| Module | Description |
|---|---|
cache |
Expression caching |
diff |
Automatic differentiation |
eval |
Expression evaluation |
expr |
Core symbolic expression types |
matrix |
Symbolic matrix operations |
ops |
Arithmetic and algebraic operations |
optimization |
E-graph based optimization (via egg) |
parser |
Parse strings to expressions |
pattern |
Pattern matching on expressions |
quantum |
Quantum-specific symbolic types |
scirs2_bridge |
SciRS2 ecosystem integration |
serialize |
Serialization support |
simplify |
Expression simplification |
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 the Apache License, Version 2.0.
Author
COOLJAPAN OU (Team Kitasan)