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