27#ifndef _EXCEPTION_DEFINED
28#define _EXCEPTION_DEFINED
39#ifndef _COMPLEX_DEFINED
40#define _COMPLEX_DEFINED
142#if !defined(__i386__) || defined(_NO_CRT_MATH_INLINE)
171static inline float sinf(
float x) {
return sin(
x); }
172static inline float cosf(
float x) {
return cos(
x); }
173static inline float tanf(
float x) {
return tan(
x); }
174static inline float sinhf(
float x) {
return sinh(
x); }
175static inline float coshf(
float x) {
return cosh(
x); }
176static inline float tanhf(
float x) {
return tanh(
x); }
177static inline float asinf(
float x) {
return asin(
x); }
178static inline float acosf(
float x) {
return acos(
x); }
179static inline float atanf(
float x) {
return atan(
x); }
181static inline float expf(
float x) {
return exp(
x); }
182static inline float logf(
float x) {
return log(
x); }
184static inline float powf(
float x,
float y) {
return pow(
x,
y); }
185static inline float sqrtf(
float x) {
return sqrt(
x); }
186static inline float ceilf(
float x) {
return ceil(
x); }
188static inline float modff(
float x,
float *
y) {
double yd,
ret =
modf(
x, &yd); *
y = yd;
return ret; }
189static inline float fmodf(
float x,
float y) {
return fmod(
x,
y); }
196 unsigned int ix = *(
int*)&
x;
200 if (!(ix >> 23 & 0xff) && (ix << 1))
210#if (defined(__x86_64__) && !defined(_UCRT)) || defined(_NO_CRT_MATH_INLINE)
216#if (!defined(__i386__) && !defined(__x86_64__) && (_MSVCR_VER == 0 || _MSVCR_VER >= 110)) || defined(_NO_CRT_MATH_INLINE)
219static inline float fabsf(
float x) {
return fabs(
x); }
222#if !defined(__i386__) || _MSVCR_VER>=120 || defined(_NO_CRT_MATH_INLINE)
253#define copysign(x,y) _copysign(x,y)
254#define copysignf(x,y) _copysignf(x,y)
263#if (defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))) || defined(__clang__)
264# define INFINITY __builtin_inff()
265# define NAN __builtin_nanf("")
266# define HUGE_VAL __builtin_huge_val()
272# define INFINITY (__inff.__f)
273# define NAN (__nanf.__f)
274# define HUGE_VAL ((double)INFINITY)
280#define FP_SUBNORMAL -2
284#define FP_ILOGB0 (-0x7fffffff - _C2)
285#define FP_ILOGBNAN 0x7fffffff
302#elif _MSVCR_VER >= 120
309#define fpclassify(x) (sizeof(x) == sizeof(float) ? _fdclass(x) : _dclass(x))
310#define signbit(x) (sizeof(x) == sizeof(float) ? _fdsign(x) : _dsign(x))
311#define isinf(x) (fpclassify(x) == FP_INFINITE)
312#define isnan(x) (fpclassify(x) == FP_NAN)
313#define isnormal(x) (fpclassify(x) == FP_NORMAL)
314#define isfinite(x) (fpclassify(x) <= 0)
320 union {
float x;
unsigned int i; }
u = {
x };
321 return (
u.i & 0x7fffffff) > 0x7f800000;
326 return (
u.i & ~0ull >> 1) > 0x7ffull << 52;
330 union {
float x;
unsigned int i; }
u = {
x };
331 return (
u.i & 0x7fffffff) == 0x7f800000;
336 return (
u.i & ~0ull >> 1) == 0x7ffull << 52;
340 union {
float x;
unsigned int i; }
u = {
x };
341 return ((
u.i + 0x00800000) & 0x7fffffff) >= 0x01000000;
346 return ((
u.i + (1ull << 52)) & ~0ull >> 1) >= 1ull << 53;
350 union {
float x;
unsigned int i; }
u = {
x };
351 return (
int)(
u.i >> 31);
356 return (
int)(
u.i >> 63);
359#define isinf(x) (sizeof(x) == sizeof(float) ? __isinff(x) : __isinf(x))
360#define isnan(x) (sizeof(x) == sizeof(float) ? __isnanf(x) : __isnan(x))
361#define isnormal(x) (sizeof(x) == sizeof(float) ? __isnormalf(x) : __isnormal(x))
362#define signbit(x) (sizeof(x) == sizeof(float) ? __signbitf(x) : __signbit(x))
363#define isfinite(x) (!isinf(x) && !isnan(x))
376#if defined(__GNUC__) || defined(__clang__)
377# define isgreater(x, y) __builtin_isgreater(x, y)
378# define isgreaterequal(x, y) __builtin_isgreaterequal(x, y)
379# define isless(x, y) __builtin_isless(x, y)
380# define islessequal(x, y) __builtin_islessequal(x, y)
381# define islessgreater(x, y) __builtin_islessgreater(x, y)
382# define isunordered(x, y) __builtin_isunordered(x, y)
384# define __FP_COMPARE(x,y) (sizeof(x) == sizeof(float) && sizeof(y) == sizeof(float) ? _fdpcomp(x,y) : _dpcomp(x,y))
385# define isgreater(x, y) ((__FP_COMPARE(x, y) & _FP_GT) != 0)
386# define isgreaterequal(x, y) ((__FP_COMPARE(x, y) & (_FP_GT|_FP_EQ)) != 0)
387# define isless(x, y) ((__FP_COMPARE(x, y) & _FP_LT) != 0)
388# define islessequal(x, y) ((__FP_COMPARE(x, y) & (_FP_LT|_FP_EQ)) != 0)
389# define islessgreater(x, y) ((__FP_COMPARE(x, y) & (_FP_LT|_FP_GT)) != 0)
390# define isunordered(x, y) (!__FP_COMPARE(x, y))
401#if !defined(__STRICT_ANSI__) || defined(_POSIX_C_SOURCE) || defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_USE_MATH_DEFINES)
402#ifndef _MATH_DEFINES_DEFINED
403#define _MATH_DEFINES_DEFINED
404#define M_E 2.71828182845904523536
405#define M_LOG2E 1.44269504088896340736
406#define M_LOG10E 0.434294481903251827651
407#define M_LN2 0.693147180559945309417
408#define M_LN10 2.30258509299404568402
409#define M_PI 3.14159265358979323846
410#define M_PI_2 1.57079632679489661923
411#define M_PI_4 0.785398163397448309616
412#define M_1_PI 0.318309886183790671538
413#define M_2_PI 0.636619772367581343076
414#define M_2_SQRTPI 1.12837916709551257390
415#define M_SQRT2 1.41421356237309504880
416#define M_SQRT1_2 0.707106781186547524401
421static inline double j0(
double x ) {
return _j0(
x ); }
422static inline double j1(
double x ) {
return _j1(
x ); }
423static inline double jn(
int n,
double x ) {
return _jn(
n,
x ); }
424static inline double y0(
double x ) {
return _y0(
x ); }
425static inline double y1(
double x ) {
return _y1(
x ); }
426static inline double yn(
int n,
double x ) {
return _yn(
n,
x ); }
429static inline long double atan2l(
long double x,
long double y ) {
return atan2( (
double)
y, (
double)
x ); }
_Check_return_ _ACRTIMP int __cdecl _fdsign(_In_ float _X)
_Check_return_ _ACRTIMP int __cdecl _dpcomp(_In_ double _X, _In_ double _Y)
_Check_return_ _ACRTIMP int __cdecl _fdpcomp(_In_ float _X, _In_ float _Y)
_Check_return_ _ACRTIMP int __cdecl _dsign(_In_ double _X)
_ACRTIMP int __cdecl _finite(double)
static int __signbitf(float x)
_ACRTIMP double __cdecl trunc(double)
_ACRTIMP double __cdecl log1p(double)
_ACRTIMP double __cdecl scalbln(double, __msvcrt_long)
_ACRTIMP double __cdecl _copysign(double, double)
_ACRTIMP float __cdecl asinf(float)
_ACRTIMP float __cdecl truncf(float)
_ACRTIMP float __cdecl atanf(float)
_ACRTIMP __int64 __cdecl llrint(double)
_ACRTIMP float __cdecl powf(float, float)
_ACRTIMP float __cdecl erff(float)
_ACRTIMP double __cdecl fdim(double, double)
_ACRTIMP double __cdecl cbrt(double)
_ACRTIMP double __cdecl exp2(double)
_ACRTIMP double __cdecl _yn(int, double)
_ACRTIMP float __cdecl cbrtf(float)
_ACRTIMP float __cdecl lgammaf(float)
_ACRTIMP double __cdecl log10(double)
_ACRTIMP double __cdecl scalbn(double, int)
static double j0(double x)
static int __isnormal(double x)
_ACRTIMP double __cdecl _hypot(double, double)
static int __signbit(double x)
_ACRTIMP double __cdecl cosh(double)
static int __isinff(float x)
_ACRTIMP double __cdecl sqrt(double)
_ACRTIMP float __cdecl _copysignf(float, float)
_ACRTIMP double __cdecl sinh(double)
_ACRTIMP float __cdecl fmaf(float x, float y, float z)
_ACRTIMP float __cdecl remquof(float, float, int *)
_ACRTIMP double __cdecl fabs(double)
_ACRTIMP double __cdecl tgamma(double)
_ACRTIMP float __cdecl tgammaf(float)
_ACRTIMP double __cdecl erf(double)
_ACRTIMP double __cdecl logb(double)
_ACRTIMP double __cdecl asinh(double)
_ACRTIMP double __cdecl tanh(double)
_ACRTIMP float __cdecl acosf(float)
static int __isnan(double x)
_ACRTIMP double __cdecl pow(double, double)
_ACRTIMP double __cdecl _y1(double)
_ACRTIMP short __cdecl _ldtest(long double *)
_ACRTIMP double __cdecl atan(double)
_ACRTIMP double __cdecl fma(double x, double y, double z)
_ACRTIMP __msvcrt_long __cdecl lrint(double)
_ACRTIMP __int64 __cdecl llrintf(float)
static float hypotf(float x, float y)
_ACRTIMP double __cdecl atanh(double)
static const union @578 __inff
_ACRTIMP float __cdecl rintf(float)
_ACRTIMP double __cdecl _cabs(struct _complex)
_ACRTIMP __msvcrt_long __cdecl lround(double)
_ACRTIMP double __cdecl log2(double)
_ACRTIMP double __cdecl _j1(double)
_ACRTIMP double __cdecl _y0(double)
_ACRTIMP double __cdecl sin(double)
_ACRTIMP int __cdecl _finitef(float)
_ACRTIMP __int64 __cdecl llroundf(float)
_ACRTIMP float __cdecl asinhf(float)
_ACRTIMP double __cdecl remquo(double, double, int *)
static int __isinf(double x)
static double j1(double x)
static double hypot(double x, double y)
_ACRTIMP float __cdecl cosf(float)
_ACRTIMP double __cdecl _chgsign(double)
_ACRTIMP int __cdecl _isnanf(float)
_ACRTIMP float __cdecl nearbyintf(float)
_ACRTIMP int __cdecl _fpclassf(float)
_ACRTIMP double __cdecl expm1(double)
_ACRTIMP float __cdecl sinf(float)
_ACRTIMP double __cdecl fmin(double, double)
static float ldexpf(float x, int y)
_ACRTIMP short __cdecl _fdtest(float *)
_ACRTIMP __int64 __cdecl llround(double)
_ACRTIMP double __cdecl ceil(double)
_ACRTIMP float __cdecl _hypotf(float, float)
_ACRTIMP double __cdecl _j0(double)
_ACRTIMP float __cdecl expm1f(float)
_ACRTIMP float __cdecl fmaxf(float, float)
_ACRTIMP float __cdecl remainderf(float, float)
_ACRTIMP double __cdecl tan(double)
_ACRTIMP int __cdecl ilogb(double)
_ACRTIMP double __cdecl fmod(double, double)
_ACRTIMP float __cdecl logf(float)
_ACRTIMP double __cdecl modf(double, double *)
_ACRTIMP float __cdecl tanhf(float)
static int __isnormalf(float x)
_ACRTIMP double __cdecl remainder(double, double)
_ACRTIMP float __cdecl scalbnf(float, int)
_ACRTIMP double __cdecl _scalb(double, __msvcrt_long)
static double jn(int n, double x)
_ACRTIMP int __cdecl _matherr(struct _exception *)
_ACRTIMP int __cdecl _fpclass(double)
_ACRTIMP float __cdecl fabsf(float)
_ACRTIMP float __cdecl scalblnf(float, __msvcrt_long)
static int __isnanf(float x)
_ACRTIMP double __cdecl lgamma(double)
_ACRTIMP double __cdecl floor(double)
_ACRTIMP float __cdecl _logbf(float)
_ACRTIMP double __cdecl ldexp(double, int)
_ACRTIMP float __cdecl log2f(float)
_ACRTIMP float __cdecl logbf(float)
_ACRTIMP float __cdecl log10f(float)
_ACRTIMP short __cdecl _dtest(double *)
_ACRTIMP int __cdecl ilogbf(float)
_ACRTIMP double __cdecl asin(double)
_ACRTIMP double __cdecl frexp(double, int *)
_ACRTIMP double __cdecl nearbyint(double)
static float frexpf(float x, int *y)
_ACRTIMP float __cdecl log1pf(float)
_ACRTIMP double __cdecl acosh(double)
_ACRTIMP float __cdecl modff(float, float *)
static double yn(int n, double x)
_ACRTIMP float __cdecl roundf(float)
_ACRTIMP float __cdecl tanf(float)
_ACRTIMP float __cdecl atanhf(float)
_ACRTIMP double __cdecl cos(double)
_ACRTIMP __msvcrt_long __cdecl lroundf(float)
_ACRTIMP float __cdecl nextafterf(float, float)
_ACRTIMP double __cdecl atan2(double, double)
_ACRTIMP double __cdecl _logb(double)
_ACRTIMP __msvcrt_long __cdecl lrintf(float)
_ACRTIMP double __cdecl acos(double)
_ACRTIMP float __cdecl expf(float)
_ACRTIMP double __cdecl nextafter(double, double)
_ACRTIMP float __cdecl exp2f(float)
_ACRTIMP float __cdecl atan2f(float, float)
_ACRTIMP double __cdecl rint(double)
_ACRTIMP float __cdecl coshf(float)
_ACRTIMP float __cdecl fdimf(float, float)
_ACRTIMP double __cdecl _nextafter(double, double)
_ACRTIMP float __cdecl fmodf(float, float)
_ACRTIMP float __cdecl sinhf(float)
_ACRTIMP float __cdecl fminf(float, float)
static long double atan2l(long double x, long double y)
_ACRTIMP int __cdecl _isnan(double)
_ACRTIMP float __cdecl acoshf(float)
_ACRTIMP double __cdecl _jn(int, double)
static const union @578 __nanf
_ACRTIMP float __cdecl _chgsignf(float)
short CDECL _fdclass(float x)
short CDECL _dclass(double x)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1