Expand description
Data structures using approximate floating-point comparisons.
Precision is the basic struct used by everything in this crate.
FloatInterner is used for canonicalizing floats to reduce accumulated
numerical error and allow direct comparison using PartialEq.
ApproxHashMap is used for looking up approximate values.
For implementing approximate comparison on your own types, see ApproxEq,
ApproxEqZero, and ApproxOrd.
§Example
const APPROX: Precision = Precision::DEFAULT;
assert_ne!(0.1 + 0.2, 0.3_f64);
assert!(APPROX.eq(0.1 + 0.2, 0.3_f64));§Implementation
See Precision for details about how floats are compared.
§Features
The rustc-hash feature is enabled by default, and uses a faster hashing
algorithm for the hash map inside FloatInterner.
Re-exports§
pub use hash_map::ApproxHashMap;pub use intern::FloatInterner;pub use precision::Precision;pub use traits::*;
Modules§
- hash
- Traits for hashing floats using
FloatInternerto ensure that approximately-equal floats always hash to the same value. - hash_
map - Hash map that works for
ApproxHashable values. - intern
- Interner that canonicalizes similar floats.
- precision
- Precision level for comparing floats.
- traits
- Common traits related to approximate equality.