1#![cfg_attr(all(not(feature = "std"), not(test)), no_std)]
11mod cubic;
12#[cfg(feature = "libm")]
13mod libm_polyfill;
14mod poly;
15#[cfg(feature = "std")]
16mod poly_dyn;
17mod quadratic;
18mod yuksel;
19
20#[cfg(any(test, feature = "arbitrary"))]
21pub mod arbitrary;
22
23#[cfg(not(any(feature = "std", feature = "libm")))]
24compile_error!("kurbo requires either the `std` or `libm` feature");
25
26#[cfg(all(feature = "std", feature = "libm"))]
28use libm as _;
29
30pub use poly::{Cubic, Poly, Quadratic, Quartic, Quintic};
31#[cfg(feature = "std")]
32pub use poly_dyn::PolyDyn;
33
34fn different_signs(x: f64, y: f64) -> bool {
35 (x < 0.0) != (y < 0.0)
36}