Expand description
Arithmetic building blocks for exact geometric predicates.
This is the no_std, dependency-free core of the implicit-predicates
crates. Most users should depend on implicit-predicates instead.
Currently it provides:
Sign, the result type of every predicate;eft, error-free transformations: floating-point sums and products together with their exact rounding errors;expansion, exact values represented as sums off64components, with exact addition, subtraction, scaling and sign;scratch,Scratch, a bump arena over a borrowed buffer that holds the expansions of a computation and runs those operations on them, as well as the exact product of two expansions;Scratch::writelets other code write expansions of its own into it;point,Point, the contract every point type implements: an approximation of its coordinates, a bound on their error, and its exact coordinates as expansions in an arena.[f64; 3]implements it as an explicit point;filter, the helpers that turn the errors of the points of a call into the uncertainty of the floating-point filter of a predicate.
The optional alloc feature adds an owned arena that grows on the heap,
Scratch::growable, so the exact arithmetic can always complete. Without
it nothing allocates.
Status: early development. The API is incomplete and may change.
Re-exports§
pub use point::ExactCoords;pub use point::ExactError;pub use point::Point;pub use point::Weight;pub use scratch::Mark;pub use scratch::Scratch;pub use scratch::ScratchExhausted;pub use scratch::Span;
Modules§
- eft
- Error-free transformations: floating-point sums and products together with their exact rounding errors.
- expansion
- Floating-point expansions: exact values represented as sums of
f64components. - filter
- The uncertainty that the errors of the points of a call add to the floating-point filter of a predicate.
- point
- The contract every point type implements, explicit or implicit.
- scratch
- A bump arena for expansion arithmetic.
Enums§
- Sign
- The sign of a real quantity.