mod default;
#[cfg(feature = "nightly")]
mod fast_math;
pub use default::StdMath;
#[cfg(feature = "nightly")]
pub use fast_math::FastMath;
#[cfg(not(feature = "nightly"))]
pub type AutoMath = StdMath;
#[cfg(feature = "nightly")]
pub type AutoMath = FastMath;
pub trait Math<T> {
fn zero() -> T;
fn one() -> T;
fn max() -> T;
fn min() -> T;
fn sqrt(a: T) -> T;
fn abs(a: T) -> T;
fn cmp_eq(a: T, b: T) -> bool;
fn cmp_min(a: T, b: T) -> T;
fn cmp_max(a: T, b: T) -> T;
fn add(a: T, b: T) -> T;
fn sub(a: T, b: T) -> T;
fn mul(a: T, b: T) -> T;
fn div(a: T, b: T) -> T;
#[cfg(test)]
fn is_close(a: T, b: T) -> bool;
}