Skip to main content

Crate implicit_predicates_core

Crate implicit_predicates_core 

Source
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 of f64 components, 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.

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 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 f64 components.
scratch
A bump arena for expansion arithmetic.

Enums§

Sign
The sign of a real quantity.