quantrs2-symengine-pure 0.1.2

Pure Rust symbolic mathematics for quantum computing - a replacement for C++-based symengine
Documentation

quantrs2-symengine-pure

Pure Rust symbolic mathematics library for quantum computing.

Crates.io Documentation License

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-core for complex numbers, arrays, and random generation
  • COOLJAPAN Policy: Uses oxicode for 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)