mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-03 16:30:29 +00:00
Format with clang-format
This commit is contained in:
parent
c04f99df86
commit
de5a638994
1 changed files with 255 additions and 292 deletions
|
@ -1,8 +1,8 @@
|
|||
#ifndef LIBC_ISYSTEM_TGMATH_H_
|
||||
#define LIBC_ISYSTEM_TGMATH_H_
|
||||
|
||||
#include "libc/math.h"
|
||||
#include "libc/complex.h"
|
||||
#include "libc/math.h"
|
||||
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
#if __STDC_VERSION__ + 0 >= 201112
|
||||
|
@ -10,356 +10,319 @@ COSMOPOLITAN_C_START_
|
|||
|
||||
/* from https://en.cppreference.com/w/c/numeric/tgmath */
|
||||
|
||||
#define fabs(x) _Generic((x), \
|
||||
float : fabsf, \
|
||||
default: fabs, \
|
||||
long double : fabsl, \
|
||||
complex float : cabsf, \
|
||||
complex double : cabs, \
|
||||
complex long double : cabsl)(x)
|
||||
#define fabs(x) \
|
||||
_Generic((x), float \
|
||||
: fabsf, default \
|
||||
: fabs, long double \
|
||||
: fabsl, complex float \
|
||||
: cabsf, complex double \
|
||||
: cabs, complex long double \
|
||||
: cabsl)(x)
|
||||
|
||||
#define exp(x) _Generic((x), \
|
||||
float : expf, \
|
||||
default: exp, \
|
||||
long double : expl, \
|
||||
complex float : cexpf, \
|
||||
complex double : cexp, \
|
||||
complex long double : cexpl)(x)
|
||||
#define exp(x) \
|
||||
_Generic((x), float \
|
||||
: expf, default \
|
||||
: exp, long double \
|
||||
: expl, complex float \
|
||||
: cexpf, complex double \
|
||||
: cexp, complex long double \
|
||||
: cexpl)(x)
|
||||
|
||||
#define log(x) _Generic((x), \
|
||||
float : logf, \
|
||||
default : log, \
|
||||
long double : logl, \
|
||||
complex float : clogf, \
|
||||
complex double : clog, \
|
||||
complex long double : clogl)(x)
|
||||
#define log(x) \
|
||||
_Generic((x), float \
|
||||
: logf, default \
|
||||
: log, long double \
|
||||
: logl, complex float \
|
||||
: clogf, complex double \
|
||||
: clog, complex long double \
|
||||
: clogl)(x)
|
||||
|
||||
#define pow(x, y) _Generic((x), \
|
||||
float : powf, \
|
||||
default : pow, \
|
||||
long double : powl, \
|
||||
complex float : cpowf, \
|
||||
complex double : cpow, \
|
||||
complex long double : cpowl)(x, y)
|
||||
#define pow(x, y) \
|
||||
_Generic((x), float \
|
||||
: powf, default \
|
||||
: pow, long double \
|
||||
: powl, complex float \
|
||||
: cpowf, complex double \
|
||||
: cpow, complex long double \
|
||||
: cpowl)(x, y)
|
||||
|
||||
#define sqrt(x) _Generic((x), \
|
||||
float : sqrtf, \
|
||||
default : sqrt, \
|
||||
long double : sqrtl, \
|
||||
complex float : csqrtf, \
|
||||
complex double : csqrt, \
|
||||
complex long double : csqrtl)(x)
|
||||
#define sqrt(x) \
|
||||
_Generic((x), float \
|
||||
: sqrtf, default \
|
||||
: sqrt, long double \
|
||||
: sqrtl, complex float \
|
||||
: csqrtf, complex double \
|
||||
: csqrt, complex long double \
|
||||
: csqrtl)(x)
|
||||
|
||||
#define sin(x) _Generic((x), \
|
||||
float : sinf, \
|
||||
default : sin, \
|
||||
long double : sinl, \
|
||||
complex float : csinf, \
|
||||
complex double : csin, \
|
||||
complex long double : csinl)(x)
|
||||
#define sin(x) \
|
||||
_Generic((x), float \
|
||||
: sinf, default \
|
||||
: sin, long double \
|
||||
: sinl, complex float \
|
||||
: csinf, complex double \
|
||||
: csin, complex long double \
|
||||
: csinl)(x)
|
||||
|
||||
#define cos(x) _Generic((x), \
|
||||
float : cosf, \
|
||||
default : cos, \
|
||||
long double : cosl, \
|
||||
complex float : ccosf, \
|
||||
complex double : ccos, \
|
||||
complex long double : ccosl)(x)
|
||||
#define cos(x) \
|
||||
_Generic((x), float \
|
||||
: cosf, default \
|
||||
: cos, long double \
|
||||
: cosl, complex float \
|
||||
: ccosf, complex double \
|
||||
: ccos, complex long double \
|
||||
: ccosl)(x)
|
||||
|
||||
#define tan(x) _Generic((x), \
|
||||
float : tanf, \
|
||||
default : tan, \
|
||||
long double : tanl, \
|
||||
complex float : ctanf, \
|
||||
complex double : ctan, \
|
||||
complex long double : ctanl)(x)
|
||||
#define tan(x) \
|
||||
_Generic((x), float \
|
||||
: tanf, default \
|
||||
: tan, long double \
|
||||
: tanl, complex float \
|
||||
: ctanf, complex double \
|
||||
: ctan, complex long double \
|
||||
: ctanl)(x)
|
||||
|
||||
#define asin(x) _Generic((x), \
|
||||
float : asinf, \
|
||||
default : asin, \
|
||||
long double : asinl, \
|
||||
complex float : casinf, \
|
||||
complex double : casin, \
|
||||
complex long double : casinl)(x)
|
||||
#define asin(x) \
|
||||
_Generic((x), float \
|
||||
: asinf, default \
|
||||
: asin, long double \
|
||||
: asinl, complex float \
|
||||
: casinf, complex double \
|
||||
: casin, complex long double \
|
||||
: casinl)(x)
|
||||
|
||||
#define acos(x) _Generic((x), \
|
||||
float : acosf, \
|
||||
default : acos, \
|
||||
long double : acosl, \
|
||||
complex float : cacosf, \
|
||||
complex double : cacos, \
|
||||
complex long double : cacosl)(x)
|
||||
#define acos(x) \
|
||||
_Generic((x), float \
|
||||
: acosf, default \
|
||||
: acos, long double \
|
||||
: acosl, complex float \
|
||||
: cacosf, complex double \
|
||||
: cacos, complex long double \
|
||||
: cacosl)(x)
|
||||
|
||||
#define atan(x) _Generic((x), \
|
||||
float : atanf, \
|
||||
default : atan, \
|
||||
long double : atanl, \
|
||||
complex float : catanf, \
|
||||
complex double : catan, \
|
||||
complex long double : catanl)(x)
|
||||
#define atan(x) \
|
||||
_Generic((x), float \
|
||||
: atanf, default \
|
||||
: atan, long double \
|
||||
: atanl, complex float \
|
||||
: catanf, complex double \
|
||||
: catan, complex long double \
|
||||
: catanl)(x)
|
||||
|
||||
#define sinh(x) _Generic((x), \
|
||||
float : sinhf, \
|
||||
default : sinh, \
|
||||
long double : sinhl, \
|
||||
complex float : csinhf, \
|
||||
complex double : csinh, \
|
||||
complex long double : csinhl)(x)
|
||||
#define sinh(x) \
|
||||
_Generic((x), float \
|
||||
: sinhf, default \
|
||||
: sinh, long double \
|
||||
: sinhl, complex float \
|
||||
: csinhf, complex double \
|
||||
: csinh, complex long double \
|
||||
: csinhl)(x)
|
||||
|
||||
#define cosh(x) _Generic((x), \
|
||||
float : coshf, \
|
||||
default : cosh, \
|
||||
long double : coshl, \
|
||||
complex float : ccoshf, \
|
||||
complex double : ccosh, \
|
||||
complex long double : ccoshl)(x)
|
||||
#define cosh(x) \
|
||||
_Generic((x), float \
|
||||
: coshf, default \
|
||||
: cosh, long double \
|
||||
: coshl, complex float \
|
||||
: ccoshf, complex double \
|
||||
: ccosh, complex long double \
|
||||
: ccoshl)(x)
|
||||
|
||||
#define tanh(x) _Generic((x), \
|
||||
float : tanhf, \
|
||||
default : tanh, \
|
||||
long double : tanhl, \
|
||||
complex float : ctanhf, \
|
||||
complex double : ctanh, \
|
||||
complex long double : ctanhl)(x)
|
||||
#define tanh(x) \
|
||||
_Generic((x), float \
|
||||
: tanhf, default \
|
||||
: tanh, long double \
|
||||
: tanhl, complex float \
|
||||
: ctanhf, complex double \
|
||||
: ctanh, complex long double \
|
||||
: ctanhl)(x)
|
||||
|
||||
#define asinh(x) _Generic((x), \
|
||||
float : asinhf, \
|
||||
default : asinh, \
|
||||
long double : asinhl, \
|
||||
complex float : casinhf, \
|
||||
complex double : casinh, \
|
||||
complex long double : casinhl)(x)
|
||||
#define asinh(x) \
|
||||
_Generic((x), float \
|
||||
: asinhf, default \
|
||||
: asinh, long double \
|
||||
: asinhl, complex float \
|
||||
: casinhf, complex double \
|
||||
: casinh, complex long double \
|
||||
: casinhl)(x)
|
||||
|
||||
#define acosh(x) _Generic((x), \
|
||||
float : acoshf, \
|
||||
default : acosh, \
|
||||
long double : acoshl, \
|
||||
complex float : cacoshf, \
|
||||
complex double : cacosh, \
|
||||
complex long double : cacoshl)(x)
|
||||
#define acosh(x) \
|
||||
_Generic((x), float \
|
||||
: acoshf, default \
|
||||
: acosh, long double \
|
||||
: acoshl, complex float \
|
||||
: cacoshf, complex double \
|
||||
: cacosh, complex long double \
|
||||
: cacoshl)(x)
|
||||
|
||||
#define atanh(x) _Generic((x), \
|
||||
float : atanhf, \
|
||||
default : atanh, \
|
||||
long double : atanhl, \
|
||||
complex float : catanhf, \
|
||||
complex double : catanh, \
|
||||
complex long double : catanhl)(x)
|
||||
#define atanh(x) \
|
||||
_Generic((x), float \
|
||||
: atanhf, default \
|
||||
: atanh, long double \
|
||||
: atanhl, complex float \
|
||||
: catanhf, complex double \
|
||||
: catanh, complex long double \
|
||||
: catanhl)(x)
|
||||
|
||||
#define atan2(x, y) _Generic((x), \
|
||||
float : atan2f, \
|
||||
default : atan2, \
|
||||
long double : atan2l)(x, y)
|
||||
#define atan2(x, y) \
|
||||
_Generic((x), float : atan2f, default : atan2, long double : atan2l)(x, y)
|
||||
|
||||
#define cbrt(x) _Generic((x), \
|
||||
float : cbrtf, \
|
||||
default : cbrt, \
|
||||
long double : cbrtl)(x)
|
||||
#define cbrt(x) \
|
||||
_Generic((x), float : cbrtf, default : cbrt, long double : cbrtl)(x)
|
||||
|
||||
#define ceil(x) _Generic((x), \
|
||||
float : ceilf, \
|
||||
default : ceil, \
|
||||
long double : ceill)(x)
|
||||
#define ceil(x) \
|
||||
_Generic((x), float : ceilf, default : ceil, long double : ceill)(x)
|
||||
|
||||
#define copysign(x, y) _Generic((x), \
|
||||
float : copysignf, \
|
||||
default : copysign, \
|
||||
long double : copysignl)(x, y)
|
||||
#define copysign(x, y) \
|
||||
_Generic((x), float \
|
||||
: copysignf, default \
|
||||
: copysign, long double \
|
||||
: copysignl)(x, y)
|
||||
|
||||
#define erf(x) _Generic((x), \
|
||||
float : erff, \
|
||||
default : erf, \
|
||||
long double : erfl)(x)
|
||||
#define erf(x) _Generic((x), float : erff, default : erf, long double : erfl)(x)
|
||||
|
||||
#define erfc(x) _Generic((x), \
|
||||
float : erfcf, \
|
||||
default : erfc, \
|
||||
long double : erfcl)(x)
|
||||
#define erfc(x) \
|
||||
_Generic((x), float : erfcf, default : erfc, long double : erfcl)(x)
|
||||
|
||||
#define exp2(x) _Generic((x), \
|
||||
float : exp2f, \
|
||||
default : exp2, \
|
||||
long double : exp2l)(x)
|
||||
#define exp2(x) \
|
||||
_Generic((x), float : exp2f, default : exp2, long double : exp2l)(x)
|
||||
|
||||
#define expm1(x) _Generic((x), \
|
||||
float : expm1f, \
|
||||
default : expm1, \
|
||||
long double : expm1l)(x)
|
||||
#define expm1(x) \
|
||||
_Generic((x), float : expm1f, default : expm1, long double : expm1l)(x)
|
||||
|
||||
#define fdim(x, y) _Generic((x), \
|
||||
float : fdimf, \
|
||||
default : fdim, \
|
||||
long double : fdiml)(x, y)
|
||||
#define fdim(x, y) \
|
||||
_Generic((x), float : fdimf, default : fdim, long double : fdiml)(x, y)
|
||||
|
||||
#define floor(x) _Generic((x), \
|
||||
float : floorf, \
|
||||
default : floor, \
|
||||
long double : floorl)(x)
|
||||
#define floor(x) \
|
||||
_Generic((x), float : floorf, default : floor, long double : floorl)(x)
|
||||
|
||||
#define fma(x, y, z) _Generic((x), \
|
||||
float : fmaf, \
|
||||
default : fma, \
|
||||
long double : fmal)(x, y, z)
|
||||
#define fma(x, y, z) \
|
||||
_Generic((x), float : fmaf, default : fma, long double : fmal)(x, y, z)
|
||||
|
||||
#define fmax(x, y) _Generic((x), \
|
||||
float : fmaxf, \
|
||||
default : fmax, \
|
||||
long double : fmaxl)(x, y)
|
||||
#define fmax(x, y) \
|
||||
_Generic((x), float : fmaxf, default : fmax, long double : fmaxl)(x, y)
|
||||
|
||||
#define fmin(x, y) _Generic((x), \
|
||||
float : fminf, \
|
||||
default : fmin, \
|
||||
long double : fminl)(x, y)
|
||||
#define fmin(x, y) \
|
||||
_Generic((x), float : fminf, default : fmin, long double : fminl)(x, y)
|
||||
|
||||
#define fmod(x, y) _Generic((x), \
|
||||
float : fmodf, \
|
||||
default : fmod, \
|
||||
long double : fmodl)(x, y)
|
||||
#define fmod(x, y) \
|
||||
_Generic((x), float : fmodf, default : fmod, long double : fmodl)(x, y)
|
||||
|
||||
#define frexp(x, y) _Generic((x), \
|
||||
float : frexpf, \
|
||||
default : frexp, \
|
||||
long double : frexpl)(x, y)
|
||||
#define frexp(x, y) \
|
||||
_Generic((x), float : frexpf, default : frexp, long double : frexpl)(x, y)
|
||||
|
||||
#define hypot(x, y) _Generic((x), \
|
||||
float : hypotf, \
|
||||
default : hypot, \
|
||||
long double : hypotl)(x, y)
|
||||
#define hypot(x, y) \
|
||||
_Generic((x), float : hypotf, default : hypot, long double : hypotl)(x, y)
|
||||
|
||||
#define ilogb(x) _Generic((x), \
|
||||
float : ilogbf, \
|
||||
default : ilogb, \
|
||||
long double : ilogbl)(x)
|
||||
#define ilogb(x) \
|
||||
_Generic((x), float : ilogbf, default : ilogb, long double : ilogbl)(x)
|
||||
|
||||
#define ldexp(x, y) _Generic((x), \
|
||||
float : ldexpf, \
|
||||
default : ldexp, \
|
||||
long double : ldexpl)(x, y)
|
||||
#define ldexp(x, y) \
|
||||
_Generic((x), float : ldexpf, default : ldexp, long double : ldexpl)(x, y)
|
||||
|
||||
#define lgamma(x) _Generic((x), \
|
||||
float : lgammaf, \
|
||||
default : lgamma, \
|
||||
long double : lgammal)(x)
|
||||
#define lgamma(x) \
|
||||
_Generic((x), float : lgammaf, default : lgamma, long double : lgammal)(x)
|
||||
|
||||
#define llrint(x) _Generic((x), \
|
||||
float : llrintf, \
|
||||
default : llrint, \
|
||||
long double : llrintl)(x)
|
||||
#define llrint(x) \
|
||||
_Generic((x), float : llrintf, default : llrint, long double : llrintl)(x)
|
||||
|
||||
#define llround(x) _Generic((x), \
|
||||
float : llroundf, \
|
||||
default : llround, \
|
||||
long double : llroundl)(x)
|
||||
#define llround(x) \
|
||||
_Generic((x), float : llroundf, default : llround, long double : llroundl)(x)
|
||||
|
||||
#define log10(x) _Generic((x), \
|
||||
float : log10f, \
|
||||
default : log10, \
|
||||
long double : log10l)(x)
|
||||
#define log10(x) \
|
||||
_Generic((x), float : log10f, default : log10, long double : log10l)(x)
|
||||
|
||||
#define log1p(x) _Generic((x), \
|
||||
float : log1pf, \
|
||||
default : log1p, \
|
||||
long double : log1pl)(x)
|
||||
#define log1p(x) \
|
||||
_Generic((x), float : log1pf, default : log1p, long double : log1pl)(x)
|
||||
|
||||
#define log2(x) _Generic((x), \
|
||||
float : log2f, \
|
||||
default : log2, \
|
||||
long double : log2l)(x)
|
||||
#define log2(x) \
|
||||
_Generic((x), float : log2f, default : log2, long double : log2l)(x)
|
||||
|
||||
#define logb(x) _Generic((x), \
|
||||
float : logbf, \
|
||||
default : logb, \
|
||||
long double : logbl)(x)
|
||||
#define logb(x) \
|
||||
_Generic((x), float : logbf, default : logb, long double : logbl)(x)
|
||||
|
||||
#define lrint(x) _Generic((x), \
|
||||
float : lrintf, \
|
||||
default : lrint, \
|
||||
long double : lrintl)(x)
|
||||
#define lrint(x) \
|
||||
_Generic((x), float : lrintf, default : lrint, long double : lrintl)(x)
|
||||
|
||||
#define lround(x) _Generic((x), \
|
||||
float : lroundf, \
|
||||
default : lround, \
|
||||
long double : lroundl)(x)
|
||||
#define lround(x) \
|
||||
_Generic((x), float : lroundf, default : lround, long double : lroundl)(x)
|
||||
|
||||
#define nearbyint(x) _Generic((x), \
|
||||
float : nearbyintf, \
|
||||
default : nearbyint, \
|
||||
long double : nearbyintl)(x)
|
||||
#define nearbyint(x) \
|
||||
_Generic((x), float \
|
||||
: nearbyintf, default \
|
||||
: nearbyint, long double \
|
||||
: nearbyintl)(x)
|
||||
|
||||
#define nextafter(x, y) _Generic((x), \
|
||||
float : nextafterf, \
|
||||
default : nextafter, \
|
||||
long double : nextafterl)(x, y)
|
||||
#define nextafter(x, y) \
|
||||
_Generic((x), float \
|
||||
: nextafterf, default \
|
||||
: nextafter, long double \
|
||||
: nextafterl)(x, y)
|
||||
|
||||
#define nexttoward(x, y) _Generic((x), \
|
||||
float : nexttowardf, \
|
||||
default : nexttoward, \
|
||||
long double : nexttowardl)(x, y)
|
||||
#define nexttoward(x, y) \
|
||||
_Generic((x), float \
|
||||
: nexttowardf, default \
|
||||
: nexttoward, long double \
|
||||
: nexttowardl)(x, y)
|
||||
|
||||
#define remainder(x, y) _Generic((x), \
|
||||
float : remainderf, \
|
||||
default : remainder, \
|
||||
long double : remainderl)(x, y)
|
||||
#define remainder(x, y) \
|
||||
_Generic((x), float \
|
||||
: remainderf, default \
|
||||
: remainder, long double \
|
||||
: remainderl)(x, y)
|
||||
|
||||
#define remquo(x, y) _Generic((x), \
|
||||
float : remquof, \
|
||||
default : remquo, \
|
||||
long double : remquol)(x, y)
|
||||
#define remquo(x, y) \
|
||||
_Generic((x), float : remquof, default : remquo, long double : remquol)(x, y)
|
||||
|
||||
#define rint(x) _Generic((x), \
|
||||
float : rintf, \
|
||||
default : rint, \
|
||||
long double : rintl)(x)
|
||||
#define rint(x) \
|
||||
_Generic((x), float : rintf, default : rint, long double : rintl)(x)
|
||||
|
||||
#define round(x) _Generic((x), \
|
||||
float : roundf, \
|
||||
default : round, \
|
||||
long double : roundl)(x)
|
||||
#define round(x) \
|
||||
_Generic((x), float : roundf, default : round, long double : roundl)(x)
|
||||
|
||||
#define scalbln(x, y) _Generic((x), \
|
||||
float : scalblnf, \
|
||||
default : scalbln, \
|
||||
long double : scalblnl)(x, y)
|
||||
#define scalbln(x, y) \
|
||||
_Generic((x), float \
|
||||
: scalblnf, default \
|
||||
: scalbln, long double \
|
||||
: scalblnl)(x, y)
|
||||
|
||||
#define scalbn(x, y) _Generic((x), \
|
||||
float : scalbnf, \
|
||||
default : scalbn, \
|
||||
long double : scalbnl)(x, y)
|
||||
#define scalbn(x, y) \
|
||||
_Generic((x), float : scalbnf, default : scalbn, long double : scalbnl)(x, y)
|
||||
|
||||
#define tgamma(x) _Generic((x), \
|
||||
float : tgammaf, \
|
||||
default : tgamma, \
|
||||
long double : tgammal)(x)
|
||||
#define tgamma(x) \
|
||||
_Generic((x), float : tgammaf, default : tgamma, long double : tgammal)(x)
|
||||
|
||||
#define trunc(x) _Generic((x), \
|
||||
float : truncf, \
|
||||
default : trunc, \
|
||||
long double : truncl)(x)
|
||||
#define trunc(x) \
|
||||
_Generic((x), float : truncf, default : trunc, long double : truncl)(x)
|
||||
|
||||
#define carg(x) _Generic((x), \
|
||||
complex float : cargf, \
|
||||
complex default : carg, \
|
||||
complex long double : cargl)(x)
|
||||
#define carg(x) \
|
||||
_Generic((x), complex float \
|
||||
: cargf, complex default \
|
||||
: carg, complex long double \
|
||||
: cargl)(x)
|
||||
|
||||
#define conj(x) _Generic((x), \
|
||||
complex float : conjf, \
|
||||
complex default : conj, \
|
||||
complex long double : conjl)(x)
|
||||
#define conj(x) \
|
||||
_Generic((x), complex float \
|
||||
: conjf, complex default \
|
||||
: conj, complex long double \
|
||||
: conjl)(x)
|
||||
|
||||
#define creal(x) _Generic((x), \
|
||||
complex float : crealf, \
|
||||
complex default : creal, \
|
||||
complex long double : creall)(x)
|
||||
#define creal(x) \
|
||||
_Generic((x), complex float \
|
||||
: crealf, complex default \
|
||||
: creal, complex long double \
|
||||
: creall)(x)
|
||||
|
||||
#define cimag(x) _Generic((x), \
|
||||
complex float : cimagf, \
|
||||
complex default : cimag, \
|
||||
complex long double : cimagl)(x)
|
||||
#define cimag(x) \
|
||||
_Generic((x), complex float \
|
||||
: cimagf, complex default \
|
||||
: cimag, complex long double \
|
||||
: cimagl)(x)
|
||||
|
||||
#define cproj(x) _Generic((x), \
|
||||
complex float : cprojf, \
|
||||
complex default : cproj, \
|
||||
complex long double : cprojl)(x)
|
||||
#define cproj(x) \
|
||||
_Generic((x), complex float \
|
||||
: cprojf, complex default \
|
||||
: cproj, complex long double \
|
||||
: cprojl)(x)
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue