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:
[]
= "0.1.2"
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 |
|---|---|
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)