Skip to content

Instantly share code, notes, and snippets.

@john-h-kastner
Created September 4, 2020 17:37
Show Gist options
  • Save john-h-kastner/27a595010924b5729e753aa9eb6d5d2b to your computer and use it in GitHub Desktop.
Save john-h-kastner/27a595010924b5729e753aa9eb6d5d2b to your computer and use it in GitHub Desktop.
#define a(b) __GLIBC_USE_##b
#define c(d, g) d##g
#define __DECL_SIMD_cosf
#define __DECL_SIMD_sinf
#define __DECL_SIMD_logf
#define __DECL_SIMD_expf
#define __DECL_SIMD_powf
#define e(function) c(__DECL_SIMD_, function)
#define h(function, i, args) e(j(function, )) k(function, , args)
#define k(function, i, args) l(float, function, i, args)
#define l(m, function, i, args) n(m, function, i, args); n(m, c(__, function), i, )
#define o(function, i, args, attrib) p(float, function, , , attrib)
#define p(m, function, i, args, attrib) n(m, function, , attrib); n(m, c(__, function), , )
#define n(m, function, i, args) float j(function, i) args
#define j(name, q) name##f##q
k(acos, , (float));
k(asin, , (float));
k(atan, , (float));
k(atan2, , (float, float));
h(cos, , (float));
h(sin, , (float));
k(tan, , (float));
k(cosh, , (float));
k(sinh, , (float));
k(tanh, , (float));
k(acosh, , (float));
k(asinh, , (float));
k(atanh, , (float));
h(exp, , (float));
k(frexp, , (float, int *));
k(ldexp, , (float, int));
h(log, , (float));
k(log10, , (float));
k(modf, , (float, float *));
#if a(IEC_60559_FUNCS_EXT)
#endif
k(expm1, , (float));
k(log1p, , (float));
k(logb, , (float));
k(exp2, , (float));
k(log2, , (float));
h(pow, , (float, float));
k(sqrt, , (float));
k(hypot, , (float, float));
k(cbrt, , (float));
o(ceil, , , ());
o(fabs, , , ());
o(floor, , , ());
k(fmod, , (float, float));
n(, finite, , ());
k(drem, , (float, float));
k(significand, , (float));
o(copysign, , , ());
o(nan, , , ());
n(, isnan, , (float));
k(j0, , (float));
k(j1, , (float));
k(jn, , (int, float));
k(y0, , (float));
k(y1, , (float));
k(yn, , (int, float));
k(erf, , (float));
k(erfc, , (float));
k(lgamma, , (float));
k(tgamma, , (float));
k(gamma, , (float));
k(lgamma, _r, (float, int *));
k(rint, , (float));
k(nextafter, , (float, float));
k(nextdown, , );
k(nextup, , );
k(remainder, , (float, float));
k(scalbn, , (float, int));
l(, ilogb, , (float));
#if a(IEC_60559_BFP_EXT)
#endif
k(scalbln, , (float, long));
k(nearbyint, , (float));
o(round, , , ());
o(trunc, , , ());
k(remquo, , (float, float, int *));
l(, lrint, , (float));
l(, llrint, , ());
l(, lround, , ());
l(, llround, , ());
k(fdim, , ());
o(fmax, , , ());
o(fmin, , , ());
k(fma, , ());
#if a(IEC_60559_BFP_EXT) || !s
k(scalb, , (float, float));
#endif
k(acos, , (float));
k(asin, , (float));
k(atan, , (float));
k(atan2, , (float, float));
h(cos, , (float));
h(sin, , (float));
k(tan, , (float));
k(cosh, , (float));
k(sinh, , (float));
k(tanh, , (float));
k(acosh, , (float));
k(asinh, , (float));
k(atanh, , (float));
h(exp, , (float));
k(frexp, , (float, int *));
k(ldexp, , (float, int));
h(log, , (float));
k(log10, , (float));
k(modf, , (float, float *));
#if a(IEC_60559_FUNCS_EXT)
#endif
k(expm1, , (float));
k(log1p, , (float));
k(logb, , (float));
k(exp2, , (float));
k(log2, , (float));
h(pow, , (float, float));
k(sqrt, , (float));
k(hypot, , (float, float));
k(cbrt, , (float));
o(ceil, , , ());
o(fabs, , , ());
o(floor, , , ());
k(fmod, , (float, float));
n(, isinffinite, , );
k(drem, , (float, float));
k(significand, , (float));
o(copysign, , , ());
o(nan, , , ());
n(, isnan, , (float));
k(j0, , (float));
k(j1, , (float));
k(jn, , (int, float));
k(y0, , (float));
k(y1, , (float));
k(yn, , (int, float));
k(erf, , (float));
k(erfc, , (float));
k(lgamma, , (float));
k(tgamma, , (float));
k(gamma, , (float));
k(lgamma, _r, (float, int *));
k(rint, , (float));
k(nextafter, , (float, float));
k(nexttoward, , ());
#if a(IEC_60559_BFP_EXT)
#endif
k(remainder, , (float, float));
k(scalbn, , (float, int));
l(, ilogb, , (float));
#if a(IEC_60559_BFP_EXT)
#endif
k(scalbln, , (float, long));
k(nearbyint, , (float));
o(round, , , ());
o(trunc, , , ());
k(remquo, , (float, float, int *));
l(, lrint, , (float));
o(fminmag, , , );
n(, totalorder, , );
n(, totalordermag, , );
n(, canonicalize, , );
k(getpayloadsetpayload, , );
k(scalb, , (float, float));
#define u(d) void add##d(g) {}
u(2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment