simdeez 3.0.1

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

fn run_f32_sinh_u35_contract<S: Simd>() {
    check_unary_f32::<S>(
        "sinh_u35",
        contracts::SINH_U35_F32_MAX_ULP,
        |v| v.sinh_u35(),
        f32::sinh,
    );
}

fn run_f32_cosh_u35_contract<S: Simd>() {
    check_unary_f32::<S>(
        "cosh_u35",
        contracts::COSH_U35_F32_MAX_ULP,
        |v| v.cosh_u35(),
        f32::cosh,
    );
}

fn run_f32_tanh_u35_contract<S: Simd>() {
    check_unary_f32::<S>(
        "tanh_u35",
        contracts::TANH_U35_F32_MAX_ULP,
        |v| v.tanh_u35(),
        f32::tanh,
    );
}

fn run_f64_sinh_u35_contract<S: Simd>() {
    check_unary_f64::<S>(
        "sinh_u35",
        contracts::SINH_U35_F64_MAX_ULP,
        |v| v.sinh_u35(),
        f64::sinh,
    );
}

fn run_f64_cosh_u35_contract<S: Simd>() {
    check_unary_f64::<S>(
        "cosh_u35",
        contracts::COSH_U35_F64_MAX_ULP,
        |v| v.cosh_u35(),
        f64::cosh,
    );
}

fn run_f64_tanh_u35_contract<S: Simd>() {
    check_unary_f64::<S>(
        "tanh_u35",
        contracts::TANH_U35_F64_MAX_ULP,
        |v| v.tanh_u35(),
        f64::tanh,
    );
}

simd_math_all_backends!(f32_sinh_u35_contract, run_f32_sinh_u35_contract);
simd_math_all_backends!(f32_cosh_u35_contract, run_f32_cosh_u35_contract);
simd_math_all_backends!(f32_tanh_u35_contract, run_f32_tanh_u35_contract);
simd_math_all_backends!(f64_sinh_u35_contract, run_f64_sinh_u35_contract);
simd_math_all_backends!(f64_cosh_u35_contract, run_f64_cosh_u35_contract);
simd_math_all_backends!(f64_tanh_u35_contract, run_f64_tanh_u35_contract);