sleef 0.3.3

Math functions for SIMD vectors
Documentation
use super::F64x;

impl<const N: usize> crate::common::Constants for F64x<N> {
    crate::common::cons! {
        PI: F64x = core::f64::consts::PI;
        FRAC_1_PI: F64x =  core::f64::consts::FRAC_1_PI;
        FRAC_2_PI: F64x =  core::f64::consts::FRAC_2_PI;
        FRAC_PI_2: F64x =  core::f64::consts::FRAC_PI_2;
        FRAC_PI_4: F64x =  core::f64::consts::FRAC_PI_4;
        NAN: F64x =        f64::NAN;
        INFINITY: F64x =   f64::INFINITY;
        NEG_INFINITY: F64x = f64::NEG_INFINITY;
        ZERO: F64x =       0.;
        NEG_ZERO: F64x =  -0.;
        ONE: F64x =        1.;
        HALF: F64x =       0.5;
        L10_U: F64x =     crate::f64::L10_U;
        L10_L: F64x =     crate::f64::L10_L;
        L2_U: F64x =      crate::f64::L2_U;
        L2_L: F64x =      crate::f64::L2_L;
        R_LN2: F64x =    crate::f64::R_LN2;
        LOG10_2: F64x =  crate::f64::LOG10_2;
    }
}

pub trait F64Constants {
    const D1_63: Self;
    const D1_60: Self;
    const D1_54: Self;
    const D1_53: Self;
    const D1_52: Self;
    const D1_32: Self;
    const D1_31: Self;
    const D1_28: Self;
    const D1_24: Self;
    const D1_23: Self;
    const PI_A: Self;
    const PI_B: Self;
    const PI_C: Self;
    const PI_D: Self;
    const PI_A2: Self;
    const PI_B2: Self;
    const TRIGRANGEMAX: Self;
    const TRIGRANGEMAX2: Self;
    const TRIGRANGEMAX3: Self;
    const SQRT_DBL_MAX: Self;
}

impl<const N: usize> F64Constants for F64x<N> {
    crate::common::cons! {
        D1_63: F64x = crate::f64::D1_63;
        D1_60: F64x = crate::f64::D1_60;
        D1_54: F64x = crate::f64::D1_54;
        D1_53: F64x = crate::f64::D1_53;
        D1_52: F64x = crate::f64::D1_52;
        D1_32: F64x = crate::f64::D1_32;
        D1_31: F64x = crate::f64::D1_31;
        D1_28: F64x = crate::f64::D1_28;
        D1_24: F64x = crate::f64::D1_24;
        D1_23: F64x = crate::f64::D1_23;
        PI_A: F64x = crate::f64::PI_A;
        PI_B: F64x = crate::f64::PI_B;
        PI_C: F64x = crate::f64::PI_C;
        PI_D: F64x = crate::f64::PI_D;
        PI_A2: F64x = crate::f64::PI_A2;
        PI_B2: F64x = crate::f64::PI_B2;
        TRIGRANGEMAX: F64x = crate::f64::TRIGRANGEMAX;
        TRIGRANGEMAX2: F64x = crate::f64::TRIGRANGEMAX2;
        TRIGRANGEMAX3: F64x = crate::f64::TRIGRANGEMAX3;
        SQRT_DBL_MAX: F64x = crate::f64::SQRT_DBL_MAX;
    }
}