Crate tuppu_scalar

Crate tuppu_scalar 

Source
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 protection
  • BasisElement: Algebraic basis {1, √2, √3, √5, √6, √10, √15, √30} × {1, π, e, πe, …}
  • SymbolicExpr: Sparse linear combination of basis elements
  • Ball: 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.