//   Copyright Naoki Shibata and contributors 2010 - 2025.
// Distributed under the Boost Software License, Version 1.0.
//    (See accompanying file LICENSE.txt or copy at
//          http://www.boost.org/LICENSE_1_0.txt)

#define xsin Sleef_sin_u35
#define xcos Sleef_cos_u35
#define xsincos Sleef_sincos_u35
#define xtan Sleef_tan_u35
#define xasin Sleef_asin_u35
#define xacos Sleef_acos_u35
#define xatan Sleef_atan_u35
#define xatan2 Sleef_atan2_u35
#define xlog Sleef_log_u35
#define xcbrt Sleef_cbrt_u35

#define xsin_u1 Sleef_sin_u10
#define xcos_u1 Sleef_cos_u10
#define xsincos_u1 Sleef_sincos_u10
#define xtan_u1 Sleef_tan_u10
#define xasin_u1 Sleef_asin_u10
#define xacos_u1 Sleef_acos_u10
#define xatan_u1 Sleef_atan_u10
#define xatan2_u1 Sleef_atan2_u10
#define xlog_u1 Sleef_log_u10
#define xcbrt_u1 Sleef_cbrt_u10

#define xexp Sleef_exp_u10
#define xpow Sleef_pow_u10
#define xsinh Sleef_sinh_u10
#define xcosh Sleef_cosh_u10
#define xtanh Sleef_tanh_u10
#define xsinh_u35 Sleef_sinh_u35
#define xcosh_u35 Sleef_cosh_u35
#define xtanh_u35 Sleef_tanh_u35
#define xasinh Sleef_asinh_u10
#define xacosh Sleef_acosh_u10
#define xatanh Sleef_atanh_u10

#define xexp2 Sleef_exp2_u10
#define xexp10 Sleef_exp10_u10
#define xexp2_u35 Sleef_exp2_u35
#define xexp10_u35 Sleef_exp10_u35
#define xexpm1 Sleef_expm1_u10
#define xlog10 Sleef_log10_u10
#define xlog2 Sleef_log2_u10
#define xlog2_u35 Sleef_log2_u35
#define xlog1p Sleef_log1p_u10

#define xsincospi_u05 Sleef_sincospi_u05
#define xsincospi_u35 Sleef_sincospi_u35
#define xsinpi_u05 Sleef_sinpi_u05
#define xcospi_u05 Sleef_cospi_u05

#define xldexp Sleef_ldexp
#define xilogb Sleef_ilogb

#define xfma Sleef_fma
#define xsqrt Sleef_sqrt
#define xsqrt_u05 Sleef_sqrt_u05
#define xsqrt_u35 Sleef_sqrt_u35
#define xhypot_u05 Sleef_hypot_u05
#define xhypot_u35 Sleef_hypot_u35

#define xfabs Sleef_fabs
#define xcopysign Sleef_copysign
#define xfmax Sleef_fmax
#define xfmin Sleef_fmin
#define xfdim Sleef_fdim
#define xtrunc Sleef_trunc
#define xfloor Sleef_floor
#define xceil Sleef_ceil
#define xround Sleef_round
#define xrint Sleef_rint
#define xnextafter Sleef_nextafter
#define xfrfrexp Sleef_frfrexp
#define xexpfrexp Sleef_expfrexp
#define xfmod Sleef_fmod
#define xremainder Sleef_remainder
#define xmodf Sleef_modf

#define xlgamma_u1 Sleef_lgamma_u10
#define xtgamma_u1 Sleef_tgamma_u10
#define xerf_u1 Sleef_erf_u10
#define xerfc_u15 Sleef_erfc_u15

//

#define xsinf Sleef_sinf_u35
#define xcosf Sleef_cosf_u35
#define xsincosf Sleef_sincosf_u35
#define xtanf Sleef_tanf_u35
#define xasinf Sleef_asinf_u35
#define xacosf Sleef_acosf_u35
#define xatanf Sleef_atanf_u35
#define xatan2f Sleef_atan2f_u35
#define xlogf Sleef_logf_u35
#define xcbrtf Sleef_cbrtf_u35

#define xsinf_u1 Sleef_sinf_u10
#define xcosf_u1 Sleef_cosf_u10
#define xsincosf_u1 Sleef_sincosf_u10
#define xtanf_u1 Sleef_tanf_u10
#define xasinf_u1 Sleef_asinf_u10
#define xacosf_u1 Sleef_acosf_u10
#define xatanf_u1 Sleef_atanf_u10
#define xatan2f_u1 Sleef_atan2f_u10
#define xlogf_u1 Sleef_logf_u10
#define xcbrtf_u1 Sleef_cbrtf_u10

#define xexpf Sleef_expf_u10
#define xpowf Sleef_powf_u10
#define xsinhf Sleef_sinhf_u10
#define xcoshf Sleef_coshf_u10
#define xtanhf Sleef_tanhf_u10
#define xsinhf_u35 Sleef_sinhf_u35
#define xcoshf_u35 Sleef_coshf_u35
#define xtanhf_u35 Sleef_tanhf_u35
#define xasinhf Sleef_asinhf_u10
#define xacoshf Sleef_acoshf_u10
#define xatanhf Sleef_atanhf_u10

#define xexp2f Sleef_exp2f_u10
#define xexp10f Sleef_exp10f_u10
#define xexp2f_u35 Sleef_exp2f_u35
#define xexp10f_u35 Sleef_exp10f_u35
#define xexpm1f Sleef_expm1f_u10
#define xlog10f Sleef_log10f_u10
#define xlog2f Sleef_log2f_u10
#define xlog10f_u35 Sleef_log10f_u35
#define xlog2f_u35 Sleef_log2f_u35
#define xlog1pf Sleef_log1pf_u10

#define xsincospif_u05 Sleef_sincospif_u05
#define xsincospif_u35 Sleef_sincospif_u35
#define xsinpif_u05 Sleef_sinpif_u05
#define xcospif_u05 Sleef_cospif_u05

#define xldexpf Sleef_ldexpf
#define xilogbf Sleef_ilogbf

#define xfmaf Sleef_fmaf
#define xsqrtf Sleef_sqrtf
#define xsqrtf_u05 Sleef_sqrtf_u05
#define xsqrtf_u35 Sleef_sqrtf_u35
#define xhypotf_u05 Sleef_hypotf_u05
#define xhypotf_u35 Sleef_hypotf_u35

#define xfabsf Sleef_fabsf
#define xcopysignf Sleef_copysignf
#define xfmaxf Sleef_fmaxf
#define xfminf Sleef_fminf
#define xfdimf Sleef_fdimf
#define xtruncf Sleef_truncf
#define xfloorf Sleef_floorf
#define xceilf Sleef_ceilf
#define xroundf Sleef_roundf
#define xrintf Sleef_rintf
#define xnextafterf Sleef_nextafterf
#define xfrfrexpf Sleef_frfrexpf
#define xexpfrexpf Sleef_expfrexpf
#define xfmodf Sleef_fmodf
#define xremainderf Sleef_remainderf
#define xmodff Sleef_modff

#define xlgammaf_u1 Sleef_lgammaf_u10
#define xtgammaf_u1 Sleef_tgammaf_u10
#define xerff_u1 Sleef_erff_u10
#define xerfcf_u15 Sleef_erfcf_u15

#define xfastsinf_u3500 Sleef_fastsinf_u3500
#define xfastcosf_u3500 Sleef_fastcosf_u3500
#define xfastpowf_u3500 Sleef_fastpowf_u3500

//

#define xsincospil_u05 Sleef_sincospil_u05
#define xsincospil_u35 Sleef_sincospil_u35

#define xsincospiq_u05 Sleef_sincospiq_u05
#define xsincospiq_u35 Sleef_sincospiq_u35
