axiolid_predicates/lib.rs
1#![forbid(unsafe_code)]
2
3//! Certified geometric predicates: the shared exact-arithmetic substrate.
4//!
5//! A predicate answers a *sign* question, and a sign drives topology, so a
6//! plausible answer is not good enough. Every public predicate here escalates
7//! to exact arithmetic rather than comparing against a global epsilon.
8//!
9//! This package is deliberately narrow. It carries no curve, surface, mesh,
10//! B-rep, provider, or execution dependency, so a consumer that needs only
11//! certified signs — linear intersection, polygon orientation, NURBS root
12//! isolation, topology classification — pays for arithmetic and nothing else.
13//! The broad `axiolid-reference` oracle re-exports these items unchanged
14//! (ADR 0036).
15
16pub mod arithmetic;
17pub mod expansion;
18pub mod orient3;
19mod orient3_dyadic;
20pub mod orientation;
21pub mod scene;
22pub mod sphere;
23pub mod static_filter;
24
25pub use expansion::{two_diff, two_product, two_sum};
26pub use orient3::{orient3d, orient3d_filter};
27pub use orientation::{orient2d, orient2d_filter};
28pub use sphere::{incircle, incircle_filter, insphere, insphere_filter};
29pub use static_filter::StaticFilter;