3#error This file should be included only with GCC compiler
7#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
8 || !defined __STRICT_ANSI__ || defined __cplusplus
10#if __MINGW_GNUC_PREREQ(3, 3)
11#define HUGE_VALF __builtin_huge_valf()
12#define HUGE_VALL __builtin_huge_vall()
13#define INFINITY __builtin_inf()
14#define NAN __builtin_nan("")
17#define HUGE_VALF __INFF
18extern const long double __INFL;
19#define HUGE_VALL __INFL
20#define INFINITY HUGE_VALF
27#if defined(__FLT_EVAL_METHOD__)
28# if ( __FLT_EVAL_METHOD__== 0)
31# elif (__FLT_EVAL_METHOD__ == 1)
34# elif (__FLT_EVAL_METHOD__ == 2)
51#define FP_NORMAL 0x0400
52#define FP_INFINITE (FP_NAN | FP_NORMAL)
54#define FP_SUBNORMAL (FP_NORMAL | FP_ZERO)
68#ifndef __CRT__NO_INLINE
71 __asm__ __volatile__ (
"fxam; fstsw %%ax;" :
"=a" (sw):
"t" (
x));
76 __asm__ __volatile__ (
"fxam; fstsw %%ax;" :
"=a" (sw):
"t" (
x));
81 __asm__ __volatile__ (
"fxam; fstsw %%ax;" :
"=a" (sw):
"t" (
x));
86#define fpclassify(x) (sizeof (x) == sizeof (float) ? __fpclassifyf (x) \
87 : sizeof (x) == sizeof (double) ? __fpclassify (x) \
91#define isfinite(x) ((fpclassify(x) & FP_NAN) == 0)
94#define isinf(x) (fpclassify(x) == FP_INFINITE)
104#ifndef __CRT__NO_INLINE
109 "fstsw %%ax":
"=a" (sw) :
"t" (
_x));
118 "fstsw %%ax":
"=a" (sw) :
"t" (
_x));
127 "fstsw %%ax":
"=a" (sw) :
"t" (
_x));
133#define isnan(x) (sizeof (x) == sizeof (float) ? __isnanf (x) \
134 : sizeof (x) == sizeof (double) ? __isnan (x) \
138#define isnormal(x) (fpclassify(x) == FP_NORMAL)
144#ifndef __CRT__NO_INLINE
147 __asm__ __volatile__ (
"fxam; fstsw %%ax;":
"=a" (stw) :
"t" (
x));
153 __asm__ __volatile__ (
"fxam; fstsw %%ax;":
"=a" (stw) :
"t" (
x));
159 __asm__ __volatile__ (
"fxam; fstsw %%ax;":
"=a" (stw) :
"t" (
x));
164#define signbit(x) (sizeof (x) == sizeof (float) ? __signbitf (x) \
165 : sizeof (x) == sizeof (double) ? __signbit (x) \
209#define FP_ILOGB0 ((int)0x80000000)
210#define FP_ILOGBNAN ((int)0x80000000)
241#ifndef __CRT__NO_INLINE
242#if !(__MINGW_GNUC_PREREQ (4, 0) && defined (__FAST_MATH__))
246 __asm__ __volatile__ (
"fxtract\n\t"
247 "fstp %%st" :
"=t" (
res) :
"0" (
x));
254 __asm__ __volatile__ (
"fxtract\n\t"
255 "fstp %%st" :
"=t" (
res) :
"0" (
x));
261 long double res = 0.0l;
262 __asm__ __volatile__ (
"fxtract\n\t"
263 "fstp %%st" :
"=t" (
res) :
"0" (
x));
348#ifndef __CRT__NO_INLINE
349#if !(__MINGW_GNUC_PREREQ (4, 0) && defined __FAST_MATH__ )
353 __asm__ __volatile__ (
"frndint;":
"=t" (retval) :
"0" (
x));
360 __asm__ __volatile__ (
"frndint;" :
"=t" (retval) :
"0" (
x) );
366 long double retval = 0.0l;
367 __asm__ __volatile__ (
"frndint;" :
"=t" (retval) :
"0" (
x) );
375 (
"fistpl %0" :
"=m" (retval) :
"t" (
x) :
"st"); \
383 (
"fistpl %0" :
"=m" (retval) :
"t" (
x) :
"st"); \
391 (
"fistpl %0" :
"=m" (retval) :
"t" (
x) :
"st"); \
399 (
"fistpll %0" :
"=m" (retval) :
"t" (
x) :
"st"); \
407 (
"fistpll %0" :
"=m" (retval) :
"t" (
x) :
"st"); \
415 (
"fistpll %0" :
"=m" (retval) :
"t" (
x) :
"st"); \
464#ifndef __STRICT_ANSI__
465#define _nan() nan("")
466#define _nanf() nanf("")
467#define _nanl() nanl("")
505 extern long double __cdecl fmal (
long double,
long double,
long double);
518#define isgreater(x, y) __builtin_isgreater(x, y)
519#define isgreaterequal(x, y) __builtin_isgreaterequal(x, y)
520#define isless(x, y) __builtin_isless(x, y)
521#define islessequal(x, y) __builtin_islessequal(x, y)
522#define islessgreater(x, y) __builtin_islessgreater(x, y)
523#define isunordered(x, y) __builtin_isunordered(x, y)
527#ifndef __CRT__NO_INLINE
530 unsigned short retval;
531 __asm__ __volatile__ (
"fucom %%st(1);"
532 "fnstsw;":
"=a" (retval) :
"t" (
x),
"u" (
y));
537#define isgreater(x, y) ((__fp_unordered_compare(x, y) & 0x4500) == 0)
538#define isless(x, y) ((__fp_unordered_compare (y, x) & 0x4500) == 0)
539#define isgreaterequal(x, y) ((__fp_unordered_compare (x, y) & FP_INFINITE) == 0)
540#define islessequal(x, y) ((__fp_unordered_compare(y, x) & FP_INFINITE) == 0)
541#define islessgreater(x, y) ((__fp_unordered_compare(x, y) & FP_SUBNORMAL) == 0)
542#define isunordered(x, y) ((__fp_unordered_compare(x, y) & 0x4500) == 0x4500)
#define __MINGW_EXTENSION
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
long double __cdecl truncl(long double)
int __cdecl ilogbf(float)
float __cdecl copysignf(float, float)
long double __cdecl erfcl(long double)
long double __cdecl asinhl(long double)
__MINGW_EXTENSION long long __cdecl llrint(double)
int __cdecl __isnanf(float)
long double __cdecl exp2l(long double)
int __cdecl __signbitl(long double)
long __cdecl lround(double)
double __cdecl log2(double)
float __cdecl erfcf(float)
long double __cdecl atanhl(long double)
float __cdecl nexttowardf(float, long double)
long double __cdecl scalblnl(long double, long)
float __cdecl expm1f(float)
double __cdecl log1p(double)
float __cdecl nextafterf(float, float)
__MINGW_EXTENSION long long __cdecl llround(double)
int __cdecl ilogb(double)
float __cdecl acoshf(float)
float __cdecl exp2f(float)
long double __cdecl cbrtl(long double)
double __cdecl fma(double, double, double)
float __cdecl cbrtf(float)
float __cdecl roundf(float)
long double __cdecl fmaxl(long double, long double)
double __cdecl remquo(double, double, int *)
double __cdecl erf(double)
long double __cdecl rintl(long double)
long double __cdecl roundl(long double)
long double __cdecl fdiml(long double x, long double y)
long double __cdecl nearbyintl(long double)
long double __cdecl remainderl(long double, long double)
int __cdecl __fpclassify(double)
double __cdecl scalbln(double, long)
double __cdecl nan(const char *tagp)
float __cdecl atanhf(float)
long double __cdecl acoshl(long double)
long double __cdecl copysignl(long double, long double)
double __cdecl logb(double)
long double __cdecl nextafterl(long double, long double)
long __cdecl lrintl(long double)
long __cdecl lroundl(long double)
double __cdecl lgamma(double)
long double __cdecl lgammal(long double)
long double __cdecl remquol(long double, long double, int *)
float __cdecl remquof(float, float, int *)
double __cdecl erfc(double)
__MINGW_EXTENSION long long __cdecl llroundf(float)
long __cdecl lrint(double)
int __cdecl ilogbl(long double)
__MINGW_EXTENSION long long __cdecl llrintf(float)
float __cdecl log2f(float)
float __cdecl rintf(float)
float __cdecl asinhf(float)
long double __cdecl expm1l(long double)
float __cdecl remainderf(float, float)
int __cdecl __fpclassifyf(float)
float __cdecl truncf(float)
double __cdecl remainder(double, double)
double __cdecl cbrt(double)
int __cdecl __signbitf(float)
float __cdecl nearbyintf(float)
double __cdecl trunc(double)
float __cdecl nanf(const char *tagp)
float __cdecl scalblnf(float, long)
float __cdecl tgammaf(float)
long __cdecl lroundf(float)
int __cdecl __signbit(double)
float __cdecl fmaf(float, float, float)
int __cdecl __fpclassifyl(long double)
double __cdecl scalbn(double, int)
long double __cdecl nexttowardl(long double, long double)
float __cdecl fdimf(float x, float y)
long double __cdecl nanl(const char *tagp)
double __cdecl nearbyint(double)
long double __cdecl logbl(long double)
long double __cdecl erfl(long double)
int __cdecl __isnan(double)
long double __cdecl log1pl(long double)
float __cdecl fminf(float, float)
long double __cdecl tgammal(long double)
double __cdecl nexttoward(double, long double)
__CRT_INLINE int __cdecl __fp_unordered_compare(long double x, long double y)
double __cdecl copysign(double, double)
long double __cdecl fminl(long double, long double)
double __cdecl expm1(double)
float __cdecl logbf(float)
long double __cdecl fmal(long double, long double, long double)
double __cdecl exp2(double)
double __cdecl fmin(double, double)
long double __cdecl scalbnl(long double, int)
double __cdecl atanh(double)
int __cdecl __isnanl(long double)
float __cdecl log1pf(float)
float __cdecl erff(float)
float __cdecl fmaxf(float, float)
float __cdecl scalbnf(float, int)
__MINGW_EXTENSION long long __cdecl llroundl(long double)
long __cdecl lrintf(float)
double __cdecl asinh(double)
double __cdecl nextafter(double, double)
__MINGW_EXTENSION long long __cdecl llrintl(long double)
double __cdecl acosh(double)
double __cdecl rint(double)
long double __cdecl log2l(long double)
double __cdecl tgamma(double)
double __cdecl fdim(double x, double y)
float __cdecl lgammaf(float)
__asm__(".p2align 4, 0x90\n" ".seh_proc __seh2_global_filter_func\n" "__seh2_global_filter_func:\n" "\tsub %rbp, %rax\n" "\tpush %rbp\n" "\t.seh_pushreg %rbp\n" "\tsub $32, %rsp\n" "\t.seh_stackalloc 32\n" "\t.seh_endprologue\n" "\tsub %rax, %rdx\n" "\tmov %rdx, %rbp\n" "\tjmp *%r8\n" "__seh2_global_filter_func_exit:\n" "\t.p2align 4\n" "\tadd $32, %rsp\n" "\tpop %rbp\n" "\tret\n" "\t.seh_endproc")