simdeez 3.0.1

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

fn run_f32_asinh_u35_contract<S: Simd>() {
    check_unary_f32::<S>(
        "asinh_u35",
        contracts::ASINH_U35_F32_MAX_ULP,
        |v| v.asinh_u35(),
        f32::asinh,
    );
}

fn run_f32_acosh_u35_contract<S: Simd>() {
    check_unary_f32::<S>(
        "acosh_u35",
        contracts::ACOSH_U35_F32_MAX_ULP,
        |v| v.acosh_u35(),
        f32::acosh,
    );
}

fn run_f32_atanh_u35_contract<S: Simd>() {
    check_unary_f32::<S>(
        "atanh_u35",
        contracts::ATANH_U35_F32_MAX_ULP,
        |v| v.atanh_u35(),
        f32::atanh,
    );
}

fn run_f64_asinh_u35_contract<S: Simd>() {
    check_unary_f64::<S>(
        "asinh_u35",
        contracts::ASINH_U35_F64_MAX_ULP,
        |v| v.asinh_u35(),
        f64::asinh,
    );
}

fn run_f64_acosh_u35_contract<S: Simd>() {
    check_unary_f64::<S>(
        "acosh_u35",
        contracts::ACOSH_U35_F64_MAX_ULP,
        |v| v.acosh_u35(),
        f64::acosh,
    );
}

fn run_f64_atanh_u35_contract<S: Simd>() {
    check_unary_f64::<S>(
        "atanh_u35",
        contracts::ATANH_U35_F64_MAX_ULP,
        |v| v.atanh_u35(),
        f64::atanh,
    );
}

simd_math_all_backends!(f32_asinh_u35_contract, run_f32_asinh_u35_contract);
simd_math_all_backends!(f32_acosh_u35_contract, run_f32_acosh_u35_contract);
simd_math_all_backends!(f32_atanh_u35_contract, run_f32_atanh_u35_contract);
simd_math_all_backends!(f64_asinh_u35_contract, run_f64_asinh_u35_contract);
simd_math_all_backends!(f64_acosh_u35_contract, run_f64_acosh_u35_contract);
simd_math_all_backends!(f64_atanh_u35_contract, run_f64_atanh_u35_contract);