Expand description
Exact scalar arithmetic with uncertainty tracking.
This crate provides the Scalar type which combines:
SymbolicExpr: Exact symbolic representation in Q(√2,√3,√5)[π,e]Ball: Interval arithmetic for uncertainty tracking
§Architecture
Scalar = SymbolicExpr + Option<Ball>
↓ ↓
Exact symbolic Lazy numerical
computation bounds§Key Types
Rational: Arbitrary-precision rationals with GCD overflow protectionBasisElement: Algebraic basis {1, √2, √3, √5, √6, √10, √15, √30} × {1, π, e, πe, …}SymbolicExpr: Sparse linear combination of basis elementsBall: Interval [center - radius, center + radius]Scalar: The unified type combining symbolic + ball
§Example
use tuppu_scalar::{Scalar, SymbolicExpr};
// Create exact values
let half = Scalar::from_ratio(1, 2);
let sqrt2 = Scalar::sqrt2();
let pi = Scalar::pi();
// Arithmetic preserves exactness
let cos_45 = sqrt2.mul(&half); // √2/2 exactly
// Get numerical approximation when needed
assert!((cos_45.to_f64() - 0.7071067811865476).abs() < 1e-10);Re-exports§
pub use rational::Rational;pub use ball::Ball;pub use basis::BasisElement;pub use symbolic::SymbolicExpr;pub use scalar::Scalar;pub use traits::ScalarValue;pub use traits::MultivectorValue;pub use error::MathError;
Modules§
- ball
- Ball arithmetic for uncertainty tracking.
- basis
- Basis elements for the algebraic field Q(√2,√3,√5)[π,e].
- error
- Error types for scalar arithmetic.
- identity
- Identity database for exact simplification.
- rational
- Arbitrary-precision rational numbers with overflow protection.
- scalar
- The unified Scalar type combining symbolic and ball arithmetic.
- symbolic
- Sparse symbolic expressions over Q(√2,√3,√5)[π,e].
- traits
- Trait definitions for scalar and multivector values.
- unit
- Physical unit system for dimensional analysis.