mirror of https://github.com/flysand7/ciabatta.git
some tgmath.h macros
This commit is contained in:
parent
ff34259408
commit
441320f888
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
typedef float float_t;
|
typedef float float_t;
|
||||||
typedef double double_t;
|
typedef double double_t;
|
||||||
|
|
||||||
#ifndef _HUGE_ENUF
|
#ifndef _HUGE_ENUF
|
||||||
|
|
79
inc/tgmath.h
79
inc/tgmath.h
|
@ -1,40 +1,63 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
/*
|
#include <math.h>
|
||||||
these are type generic so they're macrod and use C11's _Generic
|
|
||||||
|
|
||||||
acos
|
#define _tg_is_ld(x) (sizeof(x) == sizeof(long double))
|
||||||
asin
|
#define _tg_is_d (x) (sizeof(x) == sizeof(double))
|
||||||
atan
|
|
||||||
acosh
|
#define _tg_is_ld2(x,y) (_tg_is_ld(x) || _tg_is_ld(y))
|
||||||
asinh
|
#define _tg_is_d2 (x,y) (_tg_is_d (x) || _tg_is_d (y))
|
||||||
atanh
|
|
||||||
cos
|
#define _tg_func1(func, x) ( _tg_is_ld(x) ? (func ## l)(x) \
|
||||||
sin
|
: _tg_is_d(x) ? (func)(x) \
|
||||||
tan
|
: (func ## f)(x) )
|
||||||
cosh
|
|
||||||
sinh
|
#define _tf_func2(func, x, t) ( _tg_is_ld2(x,y) ? (func ## l)(x,y) \
|
||||||
tanh
|
: _tg_is_d2(x,y) ? (func)(x,y) \
|
||||||
exp
|
: (func ## f)(x,y) )
|
||||||
log
|
|
||||||
pow
|
#define cos (x) _tg_func1(cos, x)
|
||||||
sqrt
|
#define sin (x) _tg_func1(sin, x)
|
||||||
fabs
|
#define tan (x) _tg_func1(tan, x)
|
||||||
atan2
|
#define acos (x) _tg_func1(acos, x)
|
||||||
cbrt
|
#define asin (x) _tg_func1(asin, x)
|
||||||
ceil
|
#define atan (x) _tg_func1(atan, x)
|
||||||
copysign
|
#define atan2 (x,y) _tg_func2(atan2, x, y)
|
||||||
|
|
||||||
|
#define cosh (x) _tg_func1(cosh, x)
|
||||||
|
#define sinh (x) _tg_func1(sinh, x)
|
||||||
|
#define tanh (x) _tg_func1(tanh, x)
|
||||||
|
#define acosh (x) _tg_func1(acosh, x)
|
||||||
|
#define asinh (x) _tg_func1(asinh, x)
|
||||||
|
#define atanh (x) _tg_func1(atanh, x)
|
||||||
|
|
||||||
|
#define exp (x) _tg_func1(exp, x)
|
||||||
|
#define exp2 (x) _tg_func1(exp2, x)
|
||||||
|
#define pow (x,y) _tg_func2(pow, x, y)
|
||||||
|
#define log (x,y) _tg_func2(log, x, y)
|
||||||
|
#define sqrt (x) _tg_func1(sqrt, x)
|
||||||
|
#define cbrt (x) _tg_func1(cbrt, x)
|
||||||
|
#define fabs (x) _tg_func1(fabs, x)
|
||||||
|
|
||||||
|
#define ceil (x) _tg_func1(ceil, x)
|
||||||
|
#define floor (x) _tg_func1(floor, x)
|
||||||
|
#define round (x) _tg_func1(round, x)
|
||||||
|
#define trunc (x) _tg_func1(trunc, x)
|
||||||
|
|
||||||
|
#define copysign(x,y) _tg_func2(copysign, x, y)
|
||||||
|
|
||||||
|
#define fmax (x,y) _tg_func2(fmax, x, y)
|
||||||
|
#define fmin (x,y) _tg_func2(fmin, x, y)
|
||||||
|
#define fmod (x,y) _tg_func2(fmod, x, y)
|
||||||
|
|
||||||
|
/*
|
||||||
erf
|
erf
|
||||||
erfc
|
erfc
|
||||||
exp2
|
exp2
|
||||||
expm1
|
expm1
|
||||||
fdim
|
fdim
|
||||||
floor
|
|
||||||
fma
|
fma
|
||||||
fmax
|
|
||||||
fmin
|
|
||||||
fmod
|
|
||||||
frexp
|
frexp
|
||||||
hypot
|
hypot
|
||||||
ilogb
|
ilogb
|
||||||
|
@ -54,11 +77,9 @@ nexttoward
|
||||||
remainder
|
remainder
|
||||||
remquo
|
remquo
|
||||||
rint
|
rint
|
||||||
round
|
|
||||||
scalbn
|
scalbn
|
||||||
scalbln
|
scalbln
|
||||||
tgamma
|
tgamma
|
||||||
trunc
|
|
||||||
carg
|
carg
|
||||||
cimag
|
cimag
|
||||||
conj
|
conj
|
||||||
|
|
Loading…
Reference in New Issue