#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
#error Meh...
#endif

// SSE2 2x double (b = SSE, N2 = 2 elements, v = vector)
//GO(_ZGVbN2v_acos, vFv)
//GO(_ZGVbN2v_acosh, vFv)
//GO(_ZGVbN2v_asin, vFv)
//GO(_ZGVbN2v_asinh, vFv)
//GO(_ZGVbN2v_atan, vFv)
//GO(_ZGVbN2v_atanh, vFv)
//GO(_ZGVbN2v_cbrt, vFv)
GOM(_ZGVbN2v_cos, vFEv)
//GO(_ZGVbN2v_cosh, vFv)
//GO(_ZGVbN2v_erf, vFv)
//GO(_ZGVbN2v_erfc, vFv)
GOM(_ZGVbN2v_exp, vFEv)
//GO(_ZGVbN2v_exp10, vFv)
//GO(_ZGVbN2v_exp2, vFv)
//GO(_ZGVbN2v_expm1, vFv)
GOM(_ZGVbN2v_log, vFEv)
//GO(_ZGVbN2v_log10, vFv)
//GO(_ZGVbN2v_log1p, vFv)
//GO(_ZGVbN2v_log2, vFv)
GOM(_ZGVbN2v_sin, vFEv)
//GO(_ZGVbN2v_sinh, vFv)
//GO(_ZGVbN2v_tan, vFv)
//GO(_ZGVbN2v_tanh, vFv)
//GO(_ZGVbN2vv_atan2, vFv)
//GO(_ZGVbN2vv_hypot, vFv)
GOM(_ZGVbN2vv_pow, vFEv)
//GO(_ZGVbN2vvv_sincos, vFv)

// SSE2 4x float (b = SSE, N4 = 4 elements, v = vector)
//GO(_ZGVbN4v_acosf, vFv)
//GO(_ZGVbN4v_acoshf, vFv)
//GO(_ZGVbN4v_asinf, vFv)
//GO(_ZGVbN4v_asinhf, vFv)
//GO(_ZGVbN4v_atanf, vFv)
//GO(_ZGVbN4v_atanhf, vFv)
//GO(_ZGVbN4v_cbrtf, vFv)
GOM(_ZGVbN4v_cosf, vFEv)
//GO(_ZGVbN4v_coshf, vFv)
//GO(_ZGVbN4v_erfcf, vFv)
//GO(_ZGVbN4v_erff, vFv)
//GO(_ZGVbN4v_exp10f, vFv)
//GO(_ZGVbN4v_exp2f, vFv)
GOM(_ZGVbN4v_expf, vFEv)
//GO(_ZGVbN4v_expm1f, vFv)
//GO(_ZGVbN4v_log10f, vFv)
//GO(_ZGVbN4v_log1pf, vFv)
//GO(_ZGVbN4v_log2f, vFv)
GOM(_ZGVbN4v_logf, vFEv)
GOM(_ZGVbN4v_sinf, vFEv)
//GO(_ZGVbN4v_sinhf, vFv)
//GO(_ZGVbN4v_tanf, vFv)
//GO(_ZGVbN4v_tanhf, vFv)
//GO(_ZGVbN4vv_atan2f, vFv)
//GO(_ZGVbN4vv_hypotf, vFv)
GOM(_ZGVbN4vv_powf, vFEv)
//GO(_ZGVbN4vvv_sincosf, vFv)

// AVX 4x double (c = AVX, N4 = 4 elements, v = vector)
//GO(_ZGVcN4v_acos, vFv)
//GO(_ZGVcN4v_acosh, vFv)
//GO(_ZGVcN4v_asin, vFv)
//GO(_ZGVcN4v_asinh, vFv)
//GO(_ZGVcN4v_atan, vFv)
//GO(_ZGVcN4v_atanh, vFv)
//GO(_ZGVcN4v_cbrt, vFv)
//GO(_ZGVcN4v_cos, vFv)
//GO(_ZGVcN4v_cosh, vFv)
//GO(_ZGVcN4v_erf, vFv)
//GO(_ZGVcN4v_erfc, vFv)
GOM(_ZGVcN4v_exp, vFEv)
//GO(_ZGVcN4v_exp10, vFv)
//GO(_ZGVcN4v_exp2, vFv)
//GO(_ZGVcN4v_expm1, vFv)
GOM(_ZGVcN4v_log, vFEv)
//GO(_ZGVcN4v_log10, vFv)
//GO(_ZGVcN4v_log1p, vFv)
//GO(_ZGVcN4v_log2, vFv)
//GO(_ZGVcN4v_sin, vFv)
//GO(_ZGVcN4v_sinh, vFv)
//GO(_ZGVcN4v_tan, vFv)
//GO(_ZGVcN4v_tanh, vFv)
//GO(_ZGVcN4vv_atan2, vFv)
//GO(_ZGVcN4vv_hypot, vFv)
GOM(_ZGVcN4vv_pow, vFEv)
//GO(_ZGVcN4vvv_sincos, vFv)

// AVX 8x float (c = AVX, N8 = 8 elements, v = vector)
//GO(_ZGVcN8v_acosf, vFv)
//GO(_ZGVcN8v_acoshf, vFv)
//GO(_ZGVcN8v_asinf, vFv)
//GO(_ZGVcN8v_asinhf, vFv)
//GO(_ZGVcN8v_atanf, vFv)
//GO(_ZGVcN8v_atanhf, vFv)
//GO(_ZGVcN8v_cbrtf, vFv)
//GO(_ZGVcN8v_cosf, vFv)
//GO(_ZGVcN8v_coshf, vFv)
//GO(_ZGVcN8v_erfcf, vFv)
//GO(_ZGVcN8v_erff, vFv)
//GO(_ZGVcN8v_exp10f, vFv)
//GO(_ZGVcN8v_exp2f, vFv)
GOM(_ZGVcN8v_expf, vFEv)
//GO(_ZGVcN8v_expm1f, vFv)
//GO(_ZGVcN8v_log10f, vFv)
//GO(_ZGVcN8v_log1pf, vFv)
//GO(_ZGVcN8v_log2f, vFv)
GOM(_ZGVcN8v_logf, vFEv)
//GO(_ZGVcN8v_sinf, vFv)
//GO(_ZGVcN8v_sinhf, vFv)
//GO(_ZGVcN8v_tanf, vFv)
//GO(_ZGVcN8v_tanhf, vFv)
//GO(_ZGVcN8vv_atan2f, vFv)
//GO(_ZGVcN8vv_hypotf, vFv)
GOM(_ZGVcN8vv_powf, vFEv)
//GO(_ZGVcN8vvv_sincosf, vFv)

// AVX2 4x double (d = AVX2, N4 = 4 elements, v = vector)
//GO(_ZGVdN4v_acos, vFv)
//GO(_ZGVdN4v_acosh, vFv)
//GO(_ZGVdN4v_asin, vFv)
//GO(_ZGVdN4v_asinh, vFv)
//GO(_ZGVdN4v_atan, vFv)
//GO(_ZGVdN4v_atanh, vFv)
//GO(_ZGVdN4v_cbrt, vFv)
//GO(_ZGVdN4v_cos, vFv)
//GO(_ZGVdN4v_cosh, vFv)
//GO(_ZGVdN4v_erf, vFv)
//GO(_ZGVdN4v_erfc, vFv)
GOM(_ZGVdN4v_exp, vFEv)
//GO(_ZGVdN4v_exp10, vFv)
//GO(_ZGVdN4v_exp2, vFv)
//GO(_ZGVdN4v_expm1, vFv)
GOM(_ZGVdN4v_log, vFEv)
//GO(_ZGVdN4v_log10, vFv)
//GO(_ZGVdN4v_log1p, vFv)
//GO(_ZGVdN4v_log2, vFv)
//GO(_ZGVdN4v_sin, vFv)
//GO(_ZGVdN4v_sinh, vFv)
//GO(_ZGVdN4v_tan, vFv)
//GO(_ZGVdN4v_tanh, vFv)
//GO(_ZGVdN4vv_atan2, vFv)
//GO(_ZGVdN4vv_hypot, vFv)
GOM(_ZGVdN4vv_pow, vFEv)
//GO(_ZGVdN4vvv_sincos, vFv)

// AVX2 8x float (d = AVX2, N8 = 8 elements, v = vector)
//GO(_ZGVdN8v_acosf, vFv)
//GO(_ZGVdN8v_acoshf, vFv)
//GO(_ZGVdN8v_asinf, vFv)
//GO(_ZGVdN8v_asinhf, vFv)
//GO(_ZGVdN8v_atanf, vFv)
//GO(_ZGVdN8v_atanhf, vFv)
//GO(_ZGVdN8v_cbrtf, vFv)
//GO(_ZGVdN8v_cosf, vFv)
//GO(_ZGVdN8v_coshf, vFv)
//GO(_ZGVdN8v_erfcf, vFv)
//GO(_ZGVdN8v_erff, vFv)
//GO(_ZGVdN8v_exp10f, vFv)
//GO(_ZGVdN8v_exp2f, vFv)
GOM(_ZGVdN8v_expf, vFEv)
//GO(_ZGVdN8v_expm1f, vFv)
//GO(_ZGVdN8v_log10f, vFv)
//GO(_ZGVdN8v_log1pf, vFv)
//GO(_ZGVdN8v_log2f, vFv)
GOM(_ZGVdN8v_logf, vFEv)
//GO(_ZGVdN8v_sinf, vFv)
//GO(_ZGVdN8v_sinhf, vFv)
//GO(_ZGVdN8v_tanf, vFv)
//GO(_ZGVdN8v_tanhf, vFv)
//GO(_ZGVdN8vv_atan2f, vFv)
//GO(_ZGVdN8vv_hypotf, vFv)
GOM(_ZGVdN8vv_powf, vFEv)
//GO(_ZGVdN8vvv_sincosf, vFv)

// AVX-512 8x double (e = AVX-512, N8 = 8 elements, v = vector)
//GO(_ZGVeN8v_acos, vFv)
//GO(_ZGVeN8v_acosh, vFv)
//GO(_ZGVeN8v_asin, vFv)
//GO(_ZGVeN8v_asinh, vFv)
//GO(_ZGVeN8v_atan, vFv)
//GO(_ZGVeN8v_atanh, vFv)
//GO(_ZGVeN8v_cbrt, vFv)
//GO(_ZGVeN8v_cos, vFv)
//GO(_ZGVeN8v_cosh, vFv)
//GO(_ZGVeN8v_erf, vFv)
//GO(_ZGVeN8v_erfc, vFv)
//GO(_ZGVeN8v_exp, vFv)
//GO(_ZGVeN8v_exp10, vFv)
//GO(_ZGVeN8v_exp2, vFv)
//GO(_ZGVeN8v_expm1, vFv)
//GO(_ZGVeN8v_log, vFv)
//GO(_ZGVeN8v_log10, vFv)
//GO(_ZGVeN8v_log1p, vFv)
//GO(_ZGVeN8v_log2, vFv)
//GO(_ZGVeN8v_sin, vFv)
//GO(_ZGVeN8v_sinh, vFv)
//GO(_ZGVeN8v_tan, vFv)
//GO(_ZGVeN8v_tanh, vFv)
//GO(_ZGVeN8vv_atan2, vFv)
//GO(_ZGVeN8vv_hypot, vFv)
//GO(_ZGVeN8vv_pow, vFv)
//GO(_ZGVeN8vvv_sincos, vFv)

// AVX-512 16x float (e = AVX-512, N16 = 16 elements, v = vector)
//GO(_ZGVeN16v_acosf, vFv)
//GO(_ZGVeN16v_acoshf, vFv)
//GO(_ZGVeN16v_asinf, vFv)
//GO(_ZGVeN16v_asinhf, vFv)
//GO(_ZGVeN16v_atanf, vFv)
//GO(_ZGVeN16v_atanhf, vFv)
//GO(_ZGVeN16v_cbrtf, vFv)
//GO(_ZGVeN16v_cosf, vFv)
//GO(_ZGVeN16v_coshf, vFv)
//GO(_ZGVeN16v_erfcf, vFv)
//GO(_ZGVeN16v_erff, vFv)
//GO(_ZGVeN16v_exp10f, vFv)
//GO(_ZGVeN16v_exp2f, vFv)
//GO(_ZGVeN16v_expf, vFv)
//GO(_ZGVeN16v_expm1f, vFv)
//GO(_ZGVeN16v_log10f, vFv)
//GO(_ZGVeN16v_log1pf, vFv)
//GO(_ZGVeN16v_log2f, vFv)
//GO(_ZGVeN16v_logf, vFv)
//GO(_ZGVeN16v_sinf, vFv)
//GO(_ZGVeN16v_sinhf, vFv)
//GO(_ZGVeN16v_tanf, vFv)
//GO(_ZGVeN16v_tanhf, vFv)
//GO(_ZGVeN16vv_atan2f, vFv)
//GO(_ZGVeN16vv_hypotf, vFv)
//GO(_ZGVeN16vv_powf, vFv)
//GO(_ZGVeN16vvv_sincosf, vFv)
