calculo
Pluggable numeric traits for exact and approximate arithmetic. Built for algorithms that need to swap between fast floats and arbitrary-precision rationals without changing application code.
Features
Numtrait: Unified interface forf64, arbitrary-precision rationals, and floats.Inttrait: Exact integer ops for fraction-free (Bareiss) pivoting and product comparisons.Rattrait: ThoseNums which conveniently decompose into numerator/denominator pairs.- Backend-agnostic: Write once, run with
f64,rug::Rational, ordashu::RBig.
Backends
| Feature | Types | Notes |
|---|---|---|
- / simd |
f64 |
Native floats / optional SIMD-acceleration via pulp |
rug |
RugRat, RugFloat<P: usize> |
GMP-backed arbitrary precision |
dashu |
DashuRat, DashuFloat<P: usize> |
Pure-Rust arbitrary precision |
Example
use linalg;
use Num;
Switch precision by changing the type parameter---no algorithm changes required.
License
Licensed under AGPL-3.0-only. See LICENSE for details.