ReactOS 0.4.16-dev-2204-g370eb8c
math.h
Go to the documentation of this file.
1/*
2 * Math functions.
3 *
4 * Derived from the mingw header written by Colin Peters.
5 * Modified for Wine use by Hans Leidekker.
6 * This file is in the public domain.
7 */
8
9#ifndef __WINE_MATH_H
10#define __WINE_MATH_H
11
12#include <corecrt.h>
13
14#include <pshpack8.h>
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20#define _DOMAIN 1 /* domain error in argument */
21#define _SING 2 /* singularity */
22#define _OVERFLOW 3 /* range overflow */
23#define _UNDERFLOW 4 /* range underflow */
24#define _TLOSS 5 /* total loss of precision */
25#define _PLOSS 6 /* partial loss of precision */
26
27#ifndef _EXCEPTION_DEFINED
28#define _EXCEPTION_DEFINED
30{
31 int type;
32 char *name;
33 double arg1;
34 double arg2;
35 double retval;
36};
37#endif /* _EXCEPTION_DEFINED */
38
39#ifndef _COMPLEX_DEFINED
40#define _COMPLEX_DEFINED
42{
43 double x; /* Real part */
44 double y; /* Imaginary part */
45};
46#endif /* _COMPLEX_DEFINED */
47
48_ACRTIMP double __cdecl sin(double);
49_ACRTIMP double __cdecl cos(double);
50_ACRTIMP double __cdecl tan(double);
51_ACRTIMP double __cdecl sinh(double);
52_ACRTIMP double __cdecl cosh(double);
53_ACRTIMP double __cdecl tanh(double);
54_ACRTIMP double __cdecl asin(double);
55_ACRTIMP double __cdecl acos(double);
56_ACRTIMP double __cdecl atan(double);
57_ACRTIMP double __cdecl atan2(double, double);
58_ACRTIMP double __cdecl asinh(double);
59_ACRTIMP double __cdecl acosh(double);
60_ACRTIMP double __cdecl atanh(double);
61_ACRTIMP double __cdecl exp(double);
62_ACRTIMP double __cdecl log(double);
63_ACRTIMP double __cdecl log10(double);
64_ACRTIMP double __cdecl pow(double, double);
65_ACRTIMP double __cdecl sqrt(double);
66_ACRTIMP double __cdecl ceil(double);
67_ACRTIMP double __cdecl floor(double);
68_ACRTIMP double __cdecl fabs(double);
69_ACRTIMP double __cdecl ldexp(double, int);
70_ACRTIMP double __cdecl frexp(double, int*);
71_ACRTIMP double __cdecl modf(double, double*);
72_ACRTIMP double __cdecl fdim(double, double);
73_ACRTIMP double __cdecl fmod(double, double);
74_ACRTIMP double __cdecl fmin(double, double);
75_ACRTIMP double __cdecl fmax(double, double);
76_ACRTIMP double __cdecl erf(double);
77_ACRTIMP double __cdecl remainder(double, double);
78_ACRTIMP double __cdecl remquo(double, double, int*);
79_ACRTIMP float __cdecl remquof(float, float, int*);
80_ACRTIMP double __cdecl lgamma(double);
81_ACRTIMP double __cdecl tgamma(double);
82
83_ACRTIMP double __cdecl _hypot(double, double);
84_ACRTIMP double __cdecl _j0(double);
85_ACRTIMP double __cdecl _j1(double);
86_ACRTIMP double __cdecl _jn(int, double);
87_ACRTIMP double __cdecl _y0(double);
88_ACRTIMP double __cdecl _y1(double);
89_ACRTIMP double __cdecl _yn(int, double);
90
91_ACRTIMP double __cdecl cbrt(double);
92_ACRTIMP double __cdecl exp2(double);
93_ACRTIMP double __cdecl expm1(double);
94_ACRTIMP double __cdecl log1p(double);
95_ACRTIMP double __cdecl log2(double);
96_ACRTIMP double __cdecl logb(double);
97_ACRTIMP double __cdecl rint(double);
98_ACRTIMP double __cdecl round(double);
99_ACRTIMP double __cdecl trunc(double);
100
101_ACRTIMP float __cdecl cbrtf(float);
102_ACRTIMP float __cdecl exp2f(float);
105_ACRTIMP float __cdecl log2f(float);
106_ACRTIMP float __cdecl logbf(float);
107_ACRTIMP float __cdecl rintf(float);
108_ACRTIMP float __cdecl roundf(float);
110
113
114_ACRTIMP float __cdecl fmaf(float x, float y, float z);
115_ACRTIMP double __cdecl fma(double x, double y, double z);
116
125
126_ACRTIMP double __cdecl scalbn(double,int);
127_ACRTIMP float __cdecl scalbnf(float,int);
130
131_ACRTIMP double __cdecl _copysign (double, double);
132_ACRTIMP double __cdecl _chgsign (double);
133_ACRTIMP double __cdecl _scalb(double, __msvcrt_long);
134_ACRTIMP double __cdecl _logb(double);
135_ACRTIMP double __cdecl _nextafter(double, double);
136_ACRTIMP int __cdecl _finite(double);
137_ACRTIMP int __cdecl _isnan(double);
138_ACRTIMP int __cdecl _fpclass(double);
139
140_ACRTIMP double __cdecl nextafter(double, double);
141
142#if !defined(__i386__) || defined(_NO_CRT_MATH_INLINE)
143
144_ACRTIMP float __cdecl sinf(float);
145_ACRTIMP float __cdecl cosf(float);
146_ACRTIMP float __cdecl tanf(float);
147_ACRTIMP float __cdecl sinhf(float);
148_ACRTIMP float __cdecl coshf(float);
149_ACRTIMP float __cdecl tanhf(float);
150_ACRTIMP float __cdecl asinf(float);
151_ACRTIMP float __cdecl acosf(float);
152_ACRTIMP float __cdecl atanf(float);
153_ACRTIMP float __cdecl atan2f(float, float);
155_ACRTIMP float __cdecl expf(float);
156_ACRTIMP float __cdecl logf(float);
158_ACRTIMP float __cdecl powf(float, float);
159_ACRTIMP float __cdecl sqrtf(float);
160_ACRTIMP float __cdecl ceilf(float);
161_ACRTIMP float __cdecl floorf(float);
162_ACRTIMP float __cdecl modff(float, float*);
163_ACRTIMP float __cdecl fmodf(float, float);
164
165_ACRTIMP int __cdecl _finitef(float);
166_ACRTIMP int __cdecl _isnanf(float);
167_ACRTIMP int __cdecl _fpclassf(float);
168
169#else
170
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); }
180static inline float atan2f(float x, float y) { return atan2(x, y); }
181static inline float expf(float x) { return exp(x); }
182static inline float logf(float x) { return log(x); }
183static inline float log10f(float x) { return log10(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); }
187static inline float floorf(float x) { return floor(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); }
190
191static inline int _finitef(float x) { return _finite(x); }
192static inline int _isnanf(float x) { return _isnan(x); }
193
194static inline int _fpclassf(float x)
195{
196 unsigned int ix = *(int*)&x;
197 double d = x;
198
199 /* construct denormal double */
200 if (!(ix >> 23 & 0xff) && (ix << 1))
201 {
202 unsigned __int64 id = (((unsigned __int64)ix >> 31) << 63) | 1;
203 d = *(double*)&id;
204 }
205 return _fpclass(d);
206}
207
208#endif
209
210#if (defined(__x86_64__) && !defined(_UCRT)) || defined(_NO_CRT_MATH_INLINE)
211_ACRTIMP float __cdecl frexpf(float, int*);
212#else
213static inline float frexpf(float x, int *y) { return frexp(x, y); }
214#endif
215
216#if (!defined(__i386__) && !defined(__x86_64__) && (_MSVCR_VER == 0 || _MSVCR_VER >= 110)) || defined(_NO_CRT_MATH_INLINE)
217_ACRTIMP float __cdecl fabsf(float);
218#else
219static inline float fabsf(float x) { return fabs(x); }
220#endif
221
222#if !defined(__i386__) || _MSVCR_VER>=120 || defined(_NO_CRT_MATH_INLINE)
223
224_ACRTIMP float __cdecl _chgsignf(float);
225_ACRTIMP float __cdecl _copysignf(float, float);
226_ACRTIMP float __cdecl _logbf(float);
229_ACRTIMP float __cdecl atanhf(float);
230_ACRTIMP float __cdecl erff(float);
231_ACRTIMP float __cdecl fdimf(float, float);
232_ACRTIMP float __cdecl fmaxf(float, float);
233_ACRTIMP float __cdecl fminf(float, float);
235_ACRTIMP float __cdecl nextafterf(float, float);
236_ACRTIMP float __cdecl remainderf(float, float);
238
239#else
240
241static inline float _chgsignf(float x) { return _chgsign(x); }
242static inline float _copysignf(float x, float y) { return _copysign(x, y); }
243static inline float _logbf(float x) { return _logb(x); }
244
245#endif
246
247static inline float ldexpf(float x, int y) { return ldexp(x, y); }
248
249#ifdef _UCRT
250_ACRTIMP double __cdecl copysign(double, double);
251_ACRTIMP float __cdecl copysignf(float, float);
252#else
253#define copysign(x,y) _copysign(x,y)
254#define copysignf(x,y) _copysignf(x,y)
255#endif
256
259_ACRTIMP float __cdecl _hypotf(float, float);
261_ACRTIMP double __cdecl _cabs(struct _complex);
262
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()
267#else
268static const union {
269 unsigned int __i;
270 float __f;
271} __inff = { 0x7f800000 }, __nanf = { 0x7fc00000 };
272# define INFINITY (__inff.__f)
273# define NAN (__nanf.__f)
274# define HUGE_VAL ((double)INFINITY)
275#endif
276
277#define FP_INFINITE 1
278#define FP_NAN 2
279#define FP_NORMAL -1
280#define FP_SUBNORMAL -2
281#define FP_ZERO 0
282
283#define _C2 1
284#define FP_ILOGB0 (-0x7fffffff - _C2)
285#define FP_ILOGBNAN 0x7fffffff
286
287_ACRTIMP short __cdecl _dtest(double*);
288_ACRTIMP short __cdecl _ldtest(long double*);
290
291#ifdef __cplusplus
292
293extern "C++" {
294inline int fpclassify(float x) throw() { return _fdtest(&x); }
295inline int fpclassify(double x) throw() { return _dtest(&x); }
296inline int fpclassify(long double x) throw() { return _ldtest(&x); }
297template <class T> inline bool isfinite(T x) throw() { return fpclassify(x) <= 0; }
298template <class T> inline bool isinf(T x) throw() { return fpclassify(x) == FP_INFINITE; }
299template <class T> inline bool isnan(T x) throw() { return fpclassify(x) == FP_NAN; }
300} /* extern "C++" */
301
302#elif _MSVCR_VER >= 120
303
304_ACRTIMP short __cdecl _dclass(double);
305_ACRTIMP short __cdecl _fdclass(float);
306_ACRTIMP int __cdecl _dsign(double);
307_ACRTIMP int __cdecl _fdsign(float);
308
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)
315
316#else
317
318static inline int __isnanf(float x)
319{
320 union { float x; unsigned int i; } u = { x };
321 return (u.i & 0x7fffffff) > 0x7f800000;
322}
323static inline int __isnan(double x)
324{
325 union { double x; unsigned __int64 i; } u = { x };
326 return (u.i & ~0ull >> 1) > 0x7ffull << 52;
327}
328static inline int __isinff(float x)
329{
330 union { float x; unsigned int i; } u = { x };
331 return (u.i & 0x7fffffff) == 0x7f800000;
332}
333static inline int __isinf(double x)
334{
335 union { double x; unsigned __int64 i; } u = { x };
336 return (u.i & ~0ull >> 1) == 0x7ffull << 52;
337}
338static inline int __isnormalf(float x)
339{
340 union { float x; unsigned int i; } u = { x };
341 return ((u.i + 0x00800000) & 0x7fffffff) >= 0x01000000;
342}
343static inline int __isnormal(double x)
344{
345 union { double x; unsigned __int64 i; } u = { x };
346 return ((u.i + (1ull << 52)) & ~0ull >> 1) >= 1ull << 53;
347}
348static inline int __signbitf(float x)
349{
350 union { float x; unsigned int i; } u = { x };
351 return (int)(u.i >> 31);
352}
353static inline int __signbit(double x)
354{
355 union { double x; unsigned __int64 i; } u = { x };
356 return (int)(u.i >> 63);
357}
358
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))
364
365#endif
366
367#ifdef _UCRT
368
369 _ACRTIMP int __cdecl _dpcomp(double, double);
370 _ACRTIMP int __cdecl _fdpcomp(float, float);
371
372#define _FP_LT 1
373#define _FP_EQ 2
374#define _FP_GT 4
375
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)
383#else
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))
391#endif
392
393#endif /* _UCRT */
394
395#ifdef __cplusplus
396}
397#endif
398
399#include <poppack.h>
400
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
417#endif /* !_MATH_DEFINES_DEFINED */
418#endif /* _USE_MATH_DEFINES */
419
420static inline double hypot( double x, double y ) { return _hypot( x, y ); }
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 ); }
427
428static inline float hypotf( float x, float y ) { return _hypotf( x, y ); }
429static inline long double atan2l( long double x, long double y ) { return atan2( (double)y, (double)x ); }
430
431#endif /* __WINE_MATH_H */
_Check_return_ _ACRTIMP int __cdecl _fdsign(_In_ float _X)
Definition: _fdsign.c:14
_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)
Definition: _dsign.c:14
#define fmax
Definition: graphics.c:64
long __msvcrt_long
Definition: corecrt.h:167
#define __cdecl
Definition: corecrt.h:121
#define _ACRTIMP
Definition: corecrt.h:153
#define __int64
Definition: corecrt.h:72
_ACRTIMP int __cdecl _finite(double)
Definition: math.c:1582
static int __signbitf(float x)
Definition: math.h:348
_ACRTIMP double __cdecl trunc(double)
_ACRTIMP double __cdecl log1p(double)
_ACRTIMP double __cdecl scalbln(double, __msvcrt_long)
_ACRTIMP double __cdecl _copysign(double, double)
Definition: copysign.c:17
_ACRTIMP float __cdecl asinf(float)
Definition: asinf.c:47
_ACRTIMP float __cdecl truncf(float)
_ACRTIMP float __cdecl atanf(float)
Definition: atanf.c:47
_ACRTIMP __int64 __cdecl llrint(double)
Definition: mingw_math.h:395
_ACRTIMP float __cdecl powf(float, float)
Definition: powf.c:14
_ACRTIMP float __cdecl erff(float)
_ACRTIMP double __cdecl fdim(double, double)
_ACRTIMP double __cdecl cbrt(double)
_ACRTIMP double __cdecl exp2(double)
Definition: mathf.c:68
_ACRTIMP double __cdecl _yn(int, double)
Definition: jn_yn.c:21
_ACRTIMP float __cdecl cbrtf(float)
#define FP_NAN
Definition: math.h:278
_ACRTIMP float __cdecl lgammaf(float)
_ACRTIMP double __cdecl log10(double)
Definition: freeldr.c:190
#define isfinite(x)
Definition: math.h:363
_ACRTIMP double __cdecl scalbn(double, int)
Definition: scalbn.c:14
static double j0(double x)
Definition: math.h:421
static int __isnormal(double x)
Definition: math.h:343
_ACRTIMP double __cdecl _hypot(double, double)
Definition: hypot.c:34
#define isinf(x)
Definition: math.h:359
static int __signbit(double x)
Definition: math.h:353
#define isnan(x)
Definition: math.h:360
_ACRTIMP double __cdecl cosh(double)
Definition: cosh.c:11
static int __isinff(float x)
Definition: math.h:328
_ACRTIMP double __cdecl sqrt(double)
Definition: sqrt.c:5
_ACRTIMP float __cdecl _copysignf(float, float)
Definition: _copysignf.c:34
_ACRTIMP double __cdecl sinh(double)
Definition: sinh.c:50
_ACRTIMP float __cdecl fmaf(float x, float y, float z)
Definition: stubs.c:56
float __f
Definition: math.h:270
_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)
Definition: mingw_math.h:243
#define FP_INFINITE
Definition: math.h:277
_ACRTIMP double __cdecl asinh(double)
Definition: fun_ieee.c:49
_ACRTIMP double __cdecl tanh(double)
Definition: tanh.c:46
_ACRTIMP float __cdecl acosf(float)
Definition: acosf.c:47
static int __isnan(double x)
Definition: math.h:323
_ACRTIMP double __cdecl pow(double, double)
Definition: freeldr.c:178
_ACRTIMP double __cdecl _y1(double)
Definition: j1_y1.c:19
_ACRTIMP short __cdecl _ldtest(long double *)
_ACRTIMP double __cdecl atan(double)
Definition: atan.c:44
_ACRTIMP double __cdecl fma(double x, double y, double z)
Definition: stubs.c:50
_ACRTIMP __msvcrt_long __cdecl lrint(double)
Definition: mingw_math.h:371
_ACRTIMP __int64 __cdecl llrintf(float)
Definition: mingw_math.h:403
static float hypotf(float x, float y)
Definition: math.h:428
_ACRTIMP double __cdecl atanh(double)
Definition: fun_ieee.c:63
static const union @578 __inff
_ACRTIMP float __cdecl rintf(float)
Definition: mingw_math.h:357
_ACRTIMP double __cdecl _cabs(struct _complex)
Definition: math.c:1219
_ACRTIMP __msvcrt_long __cdecl lround(double)
_ACRTIMP double __cdecl log2(double)
Definition: stubs.c:62
_ACRTIMP double __cdecl _j1(double)
Definition: j1_y1.c:10
_ACRTIMP double __cdecl _y0(double)
Definition: j0_y0.c:19
_ACRTIMP double __cdecl sin(double)
Definition: sin.c:21
_ACRTIMP int __cdecl _finitef(float)
Definition: math.c:239
_ACRTIMP __int64 __cdecl llroundf(float)
_ACRTIMP float __cdecl asinhf(float)
_ACRTIMP double __cdecl remquo(double, double, int *)
static int __isinf(double x)
Definition: math.h:333
static double j1(double x)
Definition: math.h:422
static double hypot(double x, double y)
Definition: math.h:420
_ACRTIMP float __cdecl cosf(float)
Definition: cosf.c:13
_ACRTIMP double __cdecl _chgsign(double)
Definition: math.c:1227
_ACRTIMP int __cdecl _isnanf(float)
Definition: math.c:248
_ACRTIMP float __cdecl nearbyintf(float)
_ACRTIMP int __cdecl _fpclassf(float)
Definition: math.c:217
_ACRTIMP double __cdecl expm1(double)
_ACRTIMP float __cdecl sinf(float)
Definition: sinf.c:13
_ACRTIMP double __cdecl fmin(double, double)
static float ldexpf(float x, int y)
Definition: math.h:247
_ACRTIMP short __cdecl _fdtest(float *)
_ACRTIMP __int64 __cdecl llround(double)
_ACRTIMP double __cdecl ceil(double)
Definition: ceil.c:18
_ACRTIMP float __cdecl _hypotf(float, float)
Definition: hypotf.c:45
_ACRTIMP double __cdecl _j0(double)
Definition: j0_y0.c:10
_ACRTIMP float __cdecl expm1f(float)
_ACRTIMP float __cdecl fmaxf(float, float)
_ACRTIMP float __cdecl remainderf(float, float)
Definition: remainderf.c:60
#define copysignf(x, y)
Definition: math.h:254
_ACRTIMP double __cdecl tan(double)
Definition: tan.c:122
_ACRTIMP int __cdecl ilogb(double)
_ACRTIMP double __cdecl fmod(double, double)
_ACRTIMP float __cdecl logf(float)
Definition: logf.c:12
_ACRTIMP double __cdecl modf(double, double *)
Definition: modf.c:30
_ACRTIMP float __cdecl tanhf(float)
Definition: tanhf.c:49
static int __isnormalf(float x)
Definition: math.h:338
_ACRTIMP double __cdecl remainder(double, double)
Definition: remainder.c:75
_ACRTIMP float __cdecl scalbnf(float, int)
Definition: scalbnf.c:14
_ACRTIMP double __cdecl _scalb(double, __msvcrt_long)
Definition: math.c:2874
static double jn(int n, double x)
Definition: math.h:423
_ACRTIMP int __cdecl _matherr(struct _exception *)
Definition: math.c:119
_ACRTIMP int __cdecl _fpclass(double)
Definition: math.c:595
_ACRTIMP float __cdecl fabsf(float)
_ACRTIMP float __cdecl scalblnf(float, __msvcrt_long)
static int __isnanf(float x)
Definition: math.h:318
_ACRTIMP double __cdecl lgamma(double)
_ACRTIMP double __cdecl floor(double)
Definition: floor.c:18
_ACRTIMP float __cdecl _logbf(float)
Definition: logbf.c:38
_ACRTIMP double __cdecl ldexp(double, int)
Definition: math.c:1204
_ACRTIMP float __cdecl log2f(float)
Definition: stubs.c:68
_ACRTIMP float __cdecl logbf(float)
Definition: mingw_math.h:251
_ACRTIMP float __cdecl log10f(float)
_ACRTIMP short __cdecl _dtest(double *)
_ACRTIMP int __cdecl ilogbf(float)
_ACRTIMP double __cdecl asin(double)
Definition: asin.c:31
_ACRTIMP double __cdecl frexp(double, int *)
Definition: frexp.c:14
_ACRTIMP double __cdecl nearbyint(double)
static float frexpf(float x, int *y)
Definition: math.h:213
_ACRTIMP float __cdecl log1pf(float)
_ACRTIMP double __cdecl acosh(double)
Definition: fun_ieee.c:54
_ACRTIMP float __cdecl modff(float, float *)
Definition: modff.c:30
static double yn(int n, double x)
Definition: math.h:426
_ACRTIMP float __cdecl roundf(float)
Definition: roundf.c:10
unsigned int __i
Definition: math.h:269
_ACRTIMP float __cdecl tanf(float)
Definition: tanf.c:72
_ACRTIMP float __cdecl atanhf(float)
_ACRTIMP double __cdecl cos(double)
Definition: cos.c:21
_ACRTIMP __msvcrt_long __cdecl lroundf(float)
_ACRTIMP float __cdecl nextafterf(float, float)
Definition: nextafterf.c:13
_ACRTIMP double __cdecl atan2(double, double)
Definition: atan2.c:52
_ACRTIMP double __cdecl _logb(double)
Definition: logb.c:24
_ACRTIMP __msvcrt_long __cdecl lrintf(float)
Definition: mingw_math.h:379
_ACRTIMP double __cdecl acos(double)
Definition: acos.c:28
#define copysign(x, y)
Definition: math.h:253
_ACRTIMP float __cdecl expf(float)
_ACRTIMP double __cdecl nextafter(double, double)
Definition: nextafter.c:13
_ACRTIMP float __cdecl exp2f(float)
Definition: mathf.c:69
_ACRTIMP float __cdecl atan2f(float, float)
Definition: atan2f.c:51
_ACRTIMP double __cdecl rint(double)
Definition: mingw_math.h:350
_ACRTIMP float __cdecl coshf(float)
Definition: coshf.c:51
_ACRTIMP float __cdecl fdimf(float, float)
_ACRTIMP double __cdecl _nextafter(double, double)
_ACRTIMP float __cdecl fmodf(float, float)
_ACRTIMP float __cdecl sinhf(float)
Definition: sinhf.c:51
_ACRTIMP float __cdecl fminf(float, float)
static long double atan2l(long double x, long double y)
Definition: math.h:429
_ACRTIMP int __cdecl _isnan(double)
Definition: math.c:1660
_ACRTIMP float __cdecl acoshf(float)
_ACRTIMP double __cdecl _jn(int, double)
Definition: jn_yn.c:12
static const union @578 __nanf
_ACRTIMP float __cdecl _chgsignf(float)
Definition: math.c:203
short CDECL _fdclass(float x)
short CDECL _dclass(double x)
return ret
Definition: mutex.c:146
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLdouble n
Definition: glext.h:7729
GLdouble GLdouble z
Definition: glext.h:5874
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
Definition: glfuncs.h:248
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
Definition: glfuncs.h:240
#define d
Definition: ke_i.h:81
GLint y0
Definition: linetemp.h:96
#define fpclassify(x)
Definition: mingw_math.h:86
DWORD exp
Definition: msg.c:16058
#define ceilf(x)
Definition: mymath.h:62
#define floorf(x)
Definition: mymath.h:65
#define sqrtf(x)
Definition: mymath.h:59
#define round(x)
Definition: opentype.c:47
#define T(num)
Definition: thunks.c:311
#define log(outFile, fmt,...)
Definition: util.h:15
Definition: math.h:42
double y
Definition: math.h:44
double x
Definition: math.h:43
double retval
Definition: math.h:35
char * name
Definition: math.h:32
double arg2
Definition: math.h:34
int type
Definition: math.h:31
double arg1
Definition: math.h:33
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3709