simdeez 3.0.1

SIMD library to abstract over different instruction sets and widths
Documentation
use super::*;
use crate::math::{SimdMathF32InverseTrig, SimdMathF64InverseTrig};

fn run_f32_asin_u35_contract<S: Simd>() {
    check_unary_f32::<S>(
        "asin_u35",
        contracts::ASIN_U35_F32_MAX_ULP,
        |v| v.asin_u35(),
        f32::asin,
    );
}

fn run_f32_acos_u35_contract<S: Simd>() {
    check_unary_f32::<S>(
        "acos_u35",
        contracts::ACOS_U35_F32_MAX_ULP,
        |v| v.acos_u35(),
        f32::acos,
    );
}

fn run_f32_atan_u35_contract<S: Simd>() {
    check_unary_f32::<S>(
        "atan_u35",
        contracts::ATAN_U35_F32_MAX_ULP,
        |v| v.atan_u35(),
        f32::atan,
    );
}

fn run_f64_asin_u35_contract<S: Simd>() {
    check_unary_f64::<S>(
        "asin_u35",
        contracts::ASIN_U35_F64_MAX_ULP,
        |v| v.asin_u35(),
        f64::asin,
    );
}

fn run_f64_acos_u35_contract<S: Simd>() {
    check_unary_f64::<S>(
        "acos_u35",
        contracts::ACOS_U35_F64_MAX_ULP,
        |v| v.acos_u35(),
        f64::acos,
    );
}

fn run_f64_atan_u35_contract<S: Simd>() {
    check_unary_f64::<S>(
        "atan_u35",
        contracts::ATAN_U35_F64_MAX_ULP,
        |v| v.atan_u35(),
        f64::atan,
    );
}

simd_math_all_backends!(f32_asin_u35_contract, run_f32_asin_u35_contract);
simd_math_all_backends!(f32_acos_u35_contract, run_f32_acos_u35_contract);
simd_math_all_backends!(f32_atan_u35_contract, run_f32_atan_u35_contract);
simd_math_all_backends!(f64_asin_u35_contract, run_f64_asin_u35_contract);
simd_math_all_backends!(f64_acos_u35_contract, run_f64_acos_u35_contract);
simd_math_all_backends!(f64_atan_u35_contract, run_f64_atan_u35_contract);