ReactOS  0.4.13-dev-39-g8b6696f
math.h
Go to the documentation of this file.
1 
4 #ifndef _INC_MATH
5 #define _INC_MATH
6 
7 #include "crtdefs.h"
8 
9 #pragma pack(push,_CRT_PACKING)
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 typedef float float_t;
16 typedef double double_t;
17 
18 #ifndef _EXCEPTION_DEFINED
19 #define _EXCEPTION_DEFINED
20  struct _exception {
21  int type;
22  char *name;
23  double arg1;
24  double arg2;
25  double retval;
26  };
27 #endif
28 
29 #ifndef _COMPLEX_DEFINED
30 #define _COMPLEX_DEFINED
31  struct _complex {
32  double x,y;
33  };
34 #if !__STDC__ && !defined(__cplusplus)
35 #define complex _complex
36 #endif /* __STDC__ */
37 #endif /* _COMPLEX_DEFINED */
38 
39 #define _DOMAIN 1
40 #define _SING 2
41 #define _OVERFLOW 3
42 #define _UNDERFLOW 4
43 #define _TLOSS 5
44 #define _PLOSS 6
45 
46 #define EDOM 33
47 #define ERANGE 34
48 
49  _CRTIMP extern double const _HUGE;
50 
51 #define HUGE_VAL _HUGE
52 
53 #ifndef _HUGE_ENUF
54 #define _HUGE_ENUF 1e+300
55 #endif
56 #define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF))
57 #define HUGE_VALD ((double)INFINITY)
58 #define HUGE_VALF ((float)INFINITY)
59 #define HUGE_VALL ((long double)INFINITY)
60 #define NAN ((float)(INFINITY * 0.0F))
61 
62 #define _DENORM (-2)
63 #define _FINITE (-1)
64 #define _INFCODE 1
65 #define _NANCODE 2
66 
67 #define FP_INFINITE _INFCODE
68 #define FP_NAN _NANCODE
69 #define FP_NORMAL _FINITE
70 #define FP_SUBNORMAL _DENORM
71 #define FP_ZERO 0
72 
73 #ifndef __cplusplus
74 #define _matherrl _matherr
75 #endif
76 
77 #ifndef _CRT_ABS_DEFINED
78 #define _CRT_ABS_DEFINED
80 _Check_return_ long __cdecl labs(_In_ long x);
81 _Check_return_ long long __cdecl llabs(_In_ long long x);
82 #endif
83 
84 _Check_return_ double __cdecl acos(_In_ double x);
85 _Check_return_ double __cdecl asin(_In_ double x);
86 _Check_return_ double __cdecl atan(_In_ double x);
87 _Check_return_ double __cdecl atan2(_In_ double y, _In_ double x);
88 _Check_return_ double __cdecl cos(_In_ double x);
89 _Check_return_ double __cdecl cosh(_In_ double x);
90 _Check_return_ double __cdecl exp(_In_ double x);
92 _Check_return_ double __cdecl fmod(_In_ double x, _In_ double y);
93 _Check_return_ double __cdecl log(_In_ double x);
94 _Check_return_ double __cdecl log10(_In_ double x);
95 _Check_return_ double __cdecl pow(_In_ double x, double y);
96 _Check_return_ double __cdecl sin(_In_ double x);
97 _Check_return_ double __cdecl sinh(_In_ double x);
99 _Check_return_ double __cdecl tan(_In_ double x);
100 _Check_return_ double __cdecl tanh(_In_ double x);
101 
102 #ifndef _CRT_MATHERR_DEFINED
103 #define _CRT_MATHERR_DEFINED
105 #endif
106 
107 #ifndef _CRT_ATOF_DEFINED
108 #define _CRT_ATOF_DEFINED
109 _Check_return_ _CRTIMP double __cdecl atof(_In_z_ const char *str);
110 _Check_return_ _CRTIMP double __cdecl _atof_l(_In_z_ const char *str, _In_opt_ _locale_t locale); // vista+
111 #endif /* _CRT_ATOF_DEFINED */
112 
113 #ifndef _SIGN_DEFINED
114 #define _SIGN_DEFINED
115 _Check_return_ _CRTIMP double __cdecl _copysign(_In_ double x, _In_ double sgn);
117 #endif
118 
120 _Check_return_ _CRTIMP double __cdecl _hypot(_In_ double x, _In_ double y);
121 _Check_return_ _CRTIMP double __cdecl _j0(_In_ double x);
122 _Check_return_ _CRTIMP double __cdecl _j1(_In_ double x);
123 _Check_return_ _CRTIMP double __cdecl _jn(_In_ int x, _In_ double y);
124 _Check_return_ _CRTIMP double __cdecl _nextafter(_In_ double x, _In_ double y);
125 _Check_return_ _CRTIMP double __cdecl _y0(_In_ double x);
126 _Check_return_ _CRTIMP double __cdecl _y1(_In_ double x);
127 _Check_return_ _CRTIMP double __cdecl _yn(_In_ int x, _In_ double y);
128 _Check_return_ _CRTIMP double __cdecl ceil(_In_ double x);
129 _Check_return_ _CRTIMP double __cdecl floor(_In_ double x);
130 _Check_return_ _CRTIMP double __cdecl frexp(_In_ double x, _Out_ int *y);
131 _Check_return_ _CRTIMP double __cdecl ldexp(_In_ double x, _In_ int y);
132 _Check_return_ _CRTIMP double __cdecl modf(_In_ double x, _Out_ double *y);
133 
134 #if defined(__i386__) || defined(_M_IX86)
135 _Check_return_ _CRTIMP int __cdecl _set_SSE2_enable(_In_ int flag);
136 #endif
137 
138 #if defined(__x86_64) || defined(_M_AMD64)
139 _Check_return_ _CRTIMP float __cdecl _nextafterf(_In_ float x, _In_ float y);
140 _Check_return_ _CRTIMP int __cdecl _isnanf(_In_ float x);
141 _Check_return_ _CRTIMP int __cdecl _fpclassf(_In_ float x);
142 #endif
143 
144 #if defined(__x86_64) || defined(_M_AMD64) || \
145  defined(__arm__) || defined(_M_ARM) || \
146  defined(__arm64__) || defined(_M_ARM64)
147 _Check_return_ _CRTIMP int __cdecl _finitef(_In_ float x);
148 _Check_return_ _CRTIMP float __cdecl _logbf(_In_ float x);
149 #endif /* _M_AMD64 || _M_ARM || _M_ARM64 */
150 
151 #if defined(__ia64__) || defined (_M_IA64)
152 _Check_return_ _CRTIMP float __cdecl ldexpf(_In_ float x, _In_ int y);
153 _Check_return_ _CRTIMP long double __cdecl tanl(_In_ long double x);
154 #else
155 _Check_return_ __CRT_INLINE float __CRTDECL ldexpf(_In_ float x, _In_ int y) { return (float)ldexp(x, y); }
156 _Check_return_ __CRT_INLINE long double __CRTDECL tanl(_In_ long double x) { return (tan((double)x)); }
157 #endif
158 
159 #if defined(__ia64__) || defined(_M_IA64) || \
160  defined(__arm__) || defined(_M_ARM) || \
161  defined(__arm64__) || defined(_M_ARM64)
163 #else
164 _Check_return_ __CRT_INLINE float __CRTDECL fabsf(_In_ float x) { return ((float)fabs((double)x)); }
165 #endif /* _M_IA64 || _M_ARM || _M_ARM64 */
166 
167 #if defined(_CRTBLD) || \
168  defined(__x86_64) || defined(_M_AMD64) || \
169  defined(__ia64__) || defined(_M_IA64) || \
170  defined(__arm__) || defined(_M_ARM) || \
171  defined(__arm64__) || defined(_M_ARM64)
173 _Check_return_ _CRTIMP float __cdecl _copysignf(_In_ float x, _In_ float y);
174 _Check_return_ _CRTIMP float __cdecl _hypotf(_In_ float x, _In_ float y);
178 _Check_return_ _CRTIMP float __cdecl atan2f(_In_ float x, _In_ float y);
180 _Check_return_ _CRTIMP float __cdecl cosf(_In_ float x);
182 _Check_return_ _CRTIMP float __cdecl expf(_In_ float x);
184 _Check_return_ _CRTIMP float __cdecl fmodf(_In_ float x, _In_ float y);
185 _Check_return_ _CRTIMP float __cdecl logf(_In_ float x);
187 _Check_return_ _CRTIMP float __cdecl modff(_In_ float x, _Out_ float *y);
188 _Check_return_ _CRTIMP float __cdecl powf(_In_ float b, _In_ float e);
189 _Check_return_ _CRTIMP float __cdecl sinf(_In_ float x);
192 _Check_return_ _CRTIMP float __cdecl tanf(_In_ float x);
194 #else
195 #if defined(_MSC_VER) && (defined(_M_AMD64) || defined(_M_ARM))
196 /* Make sure intrinsics don't get in our way */
197 #pragma warning(suppress:4164) /* intrinsic not declared */
198 #pragma function(acosf,asinf,atanf,atan2f,ceilf,cosf,coshf,expf,floorf,fmodf,logf,log10f,log10f,powf,sinf,sinhf,sqrtf,tanf,tanhf)
199 #endif /* _MSC_VER */
200 _Check_return_ __CRT_INLINE float _chgsignf(_In_ float x) { return (float)_chgsign((double)x); }
201 _Check_return_ __CRT_INLINE float _copysignf(_In_ float x, _In_ float y) { return (float)_copysign((double)x, (double)y); }
202 _Check_return_ __CRT_INLINE float _hypotf(_In_ float x, _In_ float y) { return (float)_hypot((double)x, (double)y); }
203 _Check_return_ __CRT_INLINE float acosf(_In_ float x) { return (float)acos((double)x); }
204 _Check_return_ __CRT_INLINE float asinf(_In_ float x) { return (float)asin((double)x); }
205 _Check_return_ __CRT_INLINE float atanf(_In_ float x) { return (float)atan((double)x); }
206 _Check_return_ __CRT_INLINE float atan2f(_In_ float x, _In_ float y) { return (float)atan2((double)x,(double)y); }
207 _Check_return_ __CRT_INLINE float ceilf(_In_ float x) { return (float)ceil((double)x); }
208 _Check_return_ __CRT_INLINE float cosf(_In_ float x) { return (float)cos((double)x); }
209 _Check_return_ __CRT_INLINE float coshf(_In_ float x) { return (float)cosh((double)x); }
210 _Check_return_ __CRT_INLINE float expf(_In_ float x) { return (float)exp((double)x); }
211 _Check_return_ __CRT_INLINE float floorf(_In_ float x) { return (float)floor((double)x); }
212 _Check_return_ __CRT_INLINE float fmodf(_In_ float x, _In_ float y) { return (float)fmod((double)x,(double)y); }
213 _Check_return_ __CRT_INLINE float logf(_In_ float x) { return (float)log((double)x); }
214 _Check_return_ __CRT_INLINE float log10f(_In_ float x) { return (float)log10((double)x); }
215 _Check_return_ __CRT_INLINE float modff(_In_ float x, _Out_ float *y) { double _Di,_Df = modf((double)x,&_Di); *y = (float)_Di; return (float)_Df; }
216 _Check_return_ __CRT_INLINE float powf(_In_ float x, _In_ float y) { return (float)pow((double)x,(double)y); }
217 _Check_return_ __CRT_INLINE float sinf(_In_ float x) { return (float)sin((double)x); }
218 _Check_return_ __CRT_INLINE float sinhf(_In_ float x) { return (float)sinh((double)x); }
219 _Check_return_ __CRT_INLINE float sqrtf(_In_ float x) { return (float)sqrt((double)x); }
220 _Check_return_ __CRT_INLINE float tanf(_In_ float x) { return (float)tan((double)x); }
221 _Check_return_ __CRT_INLINE float tanhf(_In_ float x) { return (float)tanh((double)x); }
222 #endif
223 _Check_return_ __CRT_INLINE double hypot(_In_ double x, _In_ double y) { return _hypot(x, y); }
224 _Check_return_ __CRT_INLINE float hypotf(_In_ float x, _In_ float y) { return _hypotf(x, y); }
225 _Check_return_ __CRT_INLINE float frexpf(_In_ float x, _Out_ int *y) { return ((float)frexp((double)x,y)); }
226 
227 /* long double equals double, so just use inline wrappers */
228 _Check_return_ __CRT_INLINE long double acosl(_In_ long double x) { return (acos((double)x)); }
229 _Check_return_ __CRT_INLINE long double asinl(_In_ long double x) { return (asin((double)x)); }
230 _Check_return_ __CRT_INLINE long double atanl(_In_ long double x) { return (atan((double)x)); }
231 _Check_return_ __CRT_INLINE long double atan2l(_In_ long double y, _In_ long double x) { return (atan2((double)y, (double)x)); }
232 _Check_return_ __CRT_INLINE long double ceill(_In_ long double x) { return (ceil((double)x)); }
233 _Check_return_ __CRT_INLINE long double cosl(_In_ long double x) { return (cos((double)x)); }
234 _Check_return_ __CRT_INLINE long double coshl(_In_ long double x) { return (cosh((double)x)); }
235 _Check_return_ __CRT_INLINE long double expl(_In_ long double x) { return (exp((double)x)); }
236 _Check_return_ __CRT_INLINE long double fabsl(_In_ long double x) { return fabs((double)x); }
237 _Check_return_ __CRT_INLINE long double floorl(_In_ long double x) { return (floor((double)x)); }
238 _Check_return_ __CRT_INLINE long double fmodl(_In_ long double x, _In_ long double y) { return (fmod((double)x, (double)y)); }
239 _Check_return_ __CRT_INLINE long double frexpl(_In_ long double x, _Out_ int *y) { return (frexp((double)x, y)); }
240 _Check_return_ __CRT_INLINE long double hypotl(_In_ long double x, _In_ long double y) { return _hypot((double)x, (double)y); }
241 _Check_return_ __CRT_INLINE long double logl(_In_ long double x) { return (log((double)x)); }
242 _Check_return_ __CRT_INLINE long double log10l(_In_ long double x) { return (log10((double)x)); }
243 _Check_return_ __CRT_INLINE long double powl(_In_ long double x, _In_ long double y) { return (pow((double)x, (double)y)); }
244 _Check_return_ __CRT_INLINE long double sinl(_In_ long double x) { return (sin((double)x)); }
245 _Check_return_ __CRT_INLINE long double sinhl(_In_ long double x) { return (sinh((double)x)); }
246 _Check_return_ __CRT_INLINE long double sqrtl(_In_ long double x) { return (sqrt((double)x)); }
247 _Check_return_ __CRT_INLINE long double tanhl(_In_ long double x) {return (tanh((double)x)); }
248 _Check_return_ __CRT_INLINE long double _chgsignl(_In_ long double number) { return _chgsign((double)number); }
249 _Check_return_ __CRT_INLINE long double _copysignl(_In_ long double number, _In_ long double sign) { return _copysign((double)number, (double)sign); }
250 _Check_return_ __CRT_INLINE long double _hypotl(_In_ long double x, _In_ long double y) { return _hypot((double)x, (double)y); }
251 _Check_return_ __CRT_INLINE long double ldexpl(_In_ long double x, _In_ int y) { return ldexp((double)x, y); }
252 _Check_return_ __CRT_INLINE long double modfl(_In_ long double x, _Out_ long double *y) { return (long double)modf((double)x, (double *)y); }
253 
254 /* Support for some functions, not exported in MSVCRT */
255 _Check_return_ __CRT_INLINE double round(_In_ double x) { return (x < 0) ? ceil(x - 0.5f) : floor(x + 0.5); }
256 _Check_return_ __CRT_INLINE float roundf(_In_ float x) { return (x < 0) ? ceilf(x - 0.5f) : floorf(x + 0.5); }
257 _Check_return_ __CRT_INLINE long double roundl(_In_ long double x) { return (x < 0) ? ceill(x - 0.5f) : floorl(x + 0.5); }
258 _Check_return_ __CRT_INLINE long lround(_In_ double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
259 _Check_return_ __CRT_INLINE long lroundf(_In_ float x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
260 _Check_return_ __CRT_INLINE long lroundl(_In_ long double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
261 _Check_return_ __CRT_INLINE long long llround(_In_ double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
262 _Check_return_ __CRT_INLINE long long llroundf(_In_ float x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
263 _Check_return_ __CRT_INLINE long long llroundl(_In_ long double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
264 _Check_return_ __CRT_INLINE double rint(_In_ double x) { return round(x); }
265 _Check_return_ __CRT_INLINE float rintf(_In_ float x) { return roundf(x); }
266 _Check_return_ __CRT_INLINE long double rintl(_In_ long double x) { return roundl(x); }
267 _Check_return_ __CRT_INLINE long lrint(_In_ double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
268 _Check_return_ __CRT_INLINE long lrintf(_In_ float x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
269 _Check_return_ __CRT_INLINE long lrintl(_In_ long double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
270 _Check_return_ __CRT_INLINE long long llrint(_In_ double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
271 _Check_return_ __CRT_INLINE long long llrintf(_In_ float x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
272 _Check_return_ __CRT_INLINE long long llrintl(_In_ long double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
273 
274 #ifndef NO_OLDNAMES /* !__STDC__ */
275 
276 #define DOMAIN _DOMAIN
277 #define SING _SING
278 #define OVERFLOW _OVERFLOW
279 #define UNDERFLOW _UNDERFLOW
280 #define TLOSS _TLOSS
281 #define PLOSS _PLOSS
282 #define matherr _matherr
283 //_CRTIMP extern double HUGE;
284 #define HUGE _HUGE
285 //_CRT_NONSTDC_DEPRECATE(_cabs) _CRTIMP double __cdecl cabs(_In_ struct _complex x);
286 #define cabs _cabs
287 
288 _CRT_NONSTDC_DEPRECATE(_j0) _CRTIMP double __cdecl j0(_In_ double x);
289 _CRT_NONSTDC_DEPRECATE(_j1) _CRTIMP double __cdecl j1(_In_ double x);
293 _CRT_NONSTDC_DEPRECATE(_yn) _CRTIMP double __cdecl yn(_In_ int x, _In_ double y);
294 
295 #endif /* NO_OLDNAMES */
296 
297 #ifdef __cplusplus
298 }
299 #ifndef _CMATH_
300 extern "C++" {
301 
302 //inline long abs(_In_ long x) { return labs(x); }
303 _Check_return_ inline double abs(_In_ double x) throw() { return fabs(x); }
304 
305 _Check_return_ inline float abs(_In_ float x) throw() { return fabsf(x); }
306 _Check_return_ inline float acos(_In_ float x) throw() { return acosf(x); }
307 _Check_return_ inline float asin(_In_ float x) throw() { return asinf(x); }
308 _Check_return_ inline float atan(_In_ float x) throw() { return atanf(x); }
309 _Check_return_ inline float atan2(_In_ float y, _In_ float x) throw() { return atan2f(y, x); }
310 _Check_return_ inline float ceil(_In_ float x) throw() { return ceilf(x); }
311 _Check_return_ inline float copysign(_In_ float x, _In_ float y) throw() { return _copysignf(x, y); }
312 _Check_return_ inline float cos(_In_ float x) throw() { return cosf(x); }
313 _Check_return_ inline float cosh(_In_ float x) throw() { return coshf(x); }
314 _Check_return_ inline float exp(_In_ float x) throw() { return expf(x); }
315 _Check_return_ inline float fabs(_In_ float x) throw() { return fabsf(x); }
316 _Check_return_ inline float floor(_In_ float x) throw() { return floorf(x); }
317 _Check_return_ inline float fmod(_In_ float x, _In_ float y) throw() { return fmodf(x, y); }
318 _Check_return_ inline float frexp(_In_ float x, _Out_ int * y) throw() { return frexpf(x, y); }
319 _Check_return_ inline float hypot(_In_ float x, _In_ float y) throw() { return _hypotf(x, y); }
320 _Check_return_ inline float ldexp(_In_ float x, _In_ int y) throw() { return ldexpf(x, y); }
321 _Check_return_ inline float log(_In_ float x) throw() { return logf(x); }
322 _Check_return_ inline float log10(_In_ float x) throw() { return log10f(x); }
323 _Check_return_ inline float modf(_In_ float x, _Out_ float * y) throw() { return modff(x, y); }
324 _Check_return_ inline float pow(_In_ float x, _In_ float y) throw() { return powf(x, y); }
325 _Check_return_ inline float sin(_In_ float x) throw() { return sinf(x); }
326 _Check_return_ inline float sinh(_In_ float x) throw() { return sinhf(x); }
327 _Check_return_ inline float sqrt(_In_ float x) throw() { return sqrtf(x); }
328 _Check_return_ inline float tan(_In_ float x) throw() { return tanf(x); }
329 _Check_return_ inline float tanh(_In_ float x) throw() { return tanhf(x); }
330 
331 _Check_return_ inline long double abs(_In_ long double x) throw() { return fabsl(x); }
332 _Check_return_ inline long double acos(_In_ long double x) throw() { return acosl(x); }
333 _Check_return_ inline long double asin(_In_ long double x) throw() { return asinl(x); }
334 _Check_return_ inline long double atan(_In_ long double x) throw() { return atanl(x); }
335 _Check_return_ inline long double atan2(_In_ long double y, _In_ long double x) throw() { return atan2l(y, x); }
336 _Check_return_ inline long double ceil(_In_ long double x) throw() { return ceill(x); }
337 _Check_return_ inline long double copysign(_In_ long double x, _In_ long double y) throw() { return _copysignl(x, y); }
338 _Check_return_ inline long double cos(_In_ long double x) throw() { return cosl(x); }
339 _Check_return_ inline long double cosh(_In_ long double x) throw() { return coshl(x); }
340 _Check_return_ inline long double exp(_In_ long double x) throw() { return expl(x); }
341 _Check_return_ inline long double fabs(_In_ long double x) throw() { return fabsl(x); }
342 _Check_return_ inline long double floor(_In_ long double x) throw() { return floorl(x); }
343 _Check_return_ inline long double fmod(_In_ long double x, _In_ long double y) throw() { return fmodl(x, y); }
344 _Check_return_ inline long double frexp(_In_ long double x, _Out_ int * y) throw() { return frexpl(x, y); }
345 _Check_return_ inline long double hypot(_In_ long double x, _In_ long double y) throw() { return hypotl(x, y); }
346 _Check_return_ inline long double ldexp(_In_ long double x, _In_ int y) throw() { return ldexpl(x, y); }
347 _Check_return_ inline long double log(_In_ long double x) throw() { return logl(x); }
348 _Check_return_ inline long double log10(_In_ long double x) throw() { return log10l(x); }
349 _Check_return_ inline long double modf(_In_ long double x, _Out_ long double * y) throw() { return modfl(x, y); }
350 _Check_return_ inline long double pow(_In_ long double x, _In_ long double y) throw() { return powl(x, y); }
351 _Check_return_ inline long double sin(_In_ long double x) throw() { return sinl(x); }
352 _Check_return_ inline long double sinh(_In_ long double x) throw() { return sinhl(x); }
353 _Check_return_ inline long double sqrt(_In_ long double x) throw() { return sqrtl(x); }
354 _Check_return_ inline long double tan(_In_ long double x) throw() { return tanl(x); }
355 _Check_return_ inline long double tanh(_In_ long double x) throw() { return tanhl(x); }
356 }
357 #endif /* !_CMATH_ */
358 #endif /* __cplusplus */
359 
360 #pragma pack(pop)
361 
362 #endif /* !_INC_MATH */
363 
364 #if defined(_USE_MATH_DEFINES) && !defined(_MATH_DEFINES_DEFINED)
365 #define _MATH_DEFINES_DEFINED
366 
367 #define M_E 2.71828182845904523536
368 #define M_LOG2E 1.44269504088896340736
369 #define M_LOG10E 0.434294481903251827651
370 #define M_LN2 0.693147180559945309417
371 #define M_LN10 2.30258509299404568402
372 #define M_PI 3.14159265358979323846
373 #define M_PI_2 1.57079632679489661923
374 #define M_PI_4 0.785398163397448309616
375 #define M_1_PI 0.318309886183790671538
376 #define M_2_PI 0.636619772367581343076
377 #define M_2_SQRTPI 1.12837916709551257390
378 #define M_SQRT2 1.41421356237309504880
379 #define M_SQRT1_2 0.707106781186547524401
380 
381 #endif /* _USE_MATH_DEFINES */
_Check_return_ double __cdecl tanh(_In_ double x)
_Check_return_ __CRT_INLINE long double _hypotl(_In_ long double x, _In_ long double y)
Definition: math.h:250
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
static size_t double int int int * sign
Definition: printf.c:64
_Check_return_ __CRT_INLINE long double __CRTDECL tanl(_In_ long double x)
Definition: math.h:156
_Check_return_ __CRT_INLINE float logf(_In_ float x)
Definition: math.h:213
_Check_return_ _CRTIMP double __cdecl ceil(_In_ double x)
_Check_return_ __CRT_INLINE long double atan2l(_In_ long double y, _In_ long double x)
Definition: math.h:231
double __cdecl copysign(double, double)
_Check_return_ __CRT_INLINE long double asinl(_In_ long double x)
Definition: math.h:229
_CRT_NONSTDC_DEPRECATE(_j0) _CRTIMP double __cdecl j0(_In_ double x)
_Check_return_ __CRT_INLINE float floorf(_In_ float x)
Definition: math.h:211
_Check_return_ __CRT_INLINE float __CRTDECL ldexpf(_In_ float x, _In_ int y)
Definition: math.h:155
_Check_return_ __CRT_INLINE double round(_In_ double x)
Definition: math.h:255
_Check_return_ __CRT_INLINE long double sinhl(_In_ long double x)
Definition: math.h:245
_Check_return_ __CRT_INLINE long long llrintf(_In_ float x)
Definition: math.h:271
_Check_return_ double __cdecl log(_In_ double x)
double arg2
Definition: math.h:24
double y
Definition: math.h:32
long sgn(REAL x)
Definition: varray.cc:48
#define __cdecl
Definition: accygwin.h:79
_Check_return_ __CRT_INLINE long double _copysignl(_In_ long double number, _In_ long double sign)
Definition: math.h:249
_Check_return_ __CRT_INLINE float acosf(_In_ float x)
Definition: math.h:203
_Check_return_ __CRT_INLINE long double expl(_In_ long double x)
Definition: math.h:235
_Check_return_ _CRTIMP double __cdecl _atof_l(_In_z_ const char *str, _In_opt_ _locale_t locale)
#define _CRTIMP
Definition: crtdefs.h:60
_Check_return_ __CRT_INLINE long double coshl(_In_ long double x)
Definition: math.h:234
_Check_return_ double __cdecl atan2(_In_ double y, _In_ double x)
_Check_return_ _CRTIMP double __cdecl _nextafter(_In_ double x, _In_ double y)
_Check_return_ __CRT_INLINE long double sqrtl(_In_ long double x)
Definition: math.h:246
_Check_return_ __CRT_INLINE long double frexpl(_In_ long double x, _Out_ int *y)
Definition: math.h:239
char * name
Definition: math.h:22
_Check_return_ _CRTIMP double __cdecl _cabs(_In_ struct _complex a)
_Check_return_ _CRTIMP double __cdecl ldexp(_In_ double x, _In_ int y)
_Check_return_ _CRTIMP double __cdecl _yn(_In_ int x, _In_ double y)
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
_Check_return_ __CRT_INLINE long double fabsl(_In_ long double x)
Definition: math.h:236
_Check_return_ double __cdecl pow(_In_ double x, double y)
#define _Check_return_
Definition: no_sal2.h:13
int type
Definition: math.h:21
Definition: math.h:31
_Check_return_ _CRTIMP double __cdecl _j0(_In_ double x)
_Check_return_ __CRT_INLINE long lrint(_In_ double x)
Definition: math.h:267
_Check_return_ _CRTIMP double __cdecl _hypot(_In_ double x, _In_ double y)
_Check_return_ __CRT_INLINE long long llrintl(_In_ long double x)
Definition: math.h:272
_Check_return_ __CRT_INLINE long double hypotl(_In_ long double x, _In_ long double y)
Definition: math.h:240
_Check_return_ double __cdecl sinh(_In_ double x)
_Check_return_ __CRT_INLINE double rint(_In_ double x)
Definition: math.h:264
_Check_return_ double __cdecl cos(_In_ double x)
#define _In_opt_
Definition: no_sal2.h:213
_Check_return_ __CRT_INLINE float expf(_In_ float x)
Definition: math.h:210
_Check_return_ __CRT_INLINE float cosf(_In_ float x)
Definition: math.h:208
_Check_return_ __CRT_INLINE long lroundf(_In_ float x)
Definition: math.h:259
double x
Definition: math.h:32
_Check_return_ __CRT_INLINE long double roundl(_In_ long double x)
Definition: math.h:257
_Check_return_ __CRT_INLINE float roundf(_In_ float x)
Definition: math.h:256
_Check_return_ _CRTIMP double __cdecl atof(_In_z_ const char *str)
_Check_return_ __CRT_INLINE long lrintl(_In_ long double x)
Definition: math.h:269
#define _CRT_JIT_INTRINSIC
Definition: crtdefs.h:232
_Check_return_ double __cdecl cosh(_In_ double x)
Definition: _locale.h:75
#define e
Definition: ke_i.h:82
_Check_return_ __CRT_INLINE long double acosl(_In_ long double x)
Definition: math.h:228
static size_t double number
Definition: printf.c:64
_Check_return_ __CRT_INLINE long double sinl(_In_ long double x)
Definition: math.h:244
_Check_return_ double __cdecl asin(_In_ double x)
_Check_return_ __CRT_INLINE float sqrtf(_In_ float x)
Definition: math.h:219
_Check_return_ __CRT_INLINE long long llround(_In_ double x)
Definition: math.h:261
_Check_return_ __CRT_INLINE float frexpf(_In_ float x, _Out_ int *y)
Definition: math.h:225
_Check_return_ _CRTIMP double __cdecl _copysign(_In_ double x, _In_ double sgn)
_Check_return_ __CRT_INLINE long double logl(_In_ long double x)
Definition: math.h:241
_Check_return_ _CRTIMP double __cdecl _y1(_In_ double x)
_Check_return_ __CRT_INLINE float _chgsignf(_In_ float x)
Definition: math.h:200
_Check_return_ long long __cdecl llabs(_In_ long long x)
Definition: stdlib.h:1444
_Check_return_ __CRT_INLINE long double ldexpl(_In_ long double x, _In_ int y)
Definition: math.h:251
_Check_return_ __CRT_INLINE long double tanhl(_In_ long double x)
Definition: math.h:247
const WCHAR * str
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl sqrt(_In_ double x)
#define _Out_
Definition: no_sal2.h:323
_Check_return_ __CRT_INLINE double hypot(_In_ double x, _In_ double y)
Definition: math.h:223
_Check_return_ __CRT_INLINE float modff(_In_ float x, _Out_ float *y)
Definition: math.h:215
_Check_return_ __CRT_INLINE long lrintf(_In_ float x)
Definition: math.h:268
_Check_return_ __CRT_INLINE float powf(_In_ float x, _In_ float y)
Definition: math.h:216
double double_t
Definition: math.h:16
GLfloat f
Definition: glext.h:7540
_Check_return_ double __cdecl fmod(_In_ double x, _In_ double y)
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
_Check_return_ double __cdecl tan(_In_ double x)
_Check_return_ __CRT_INLINE float sinhf(_In_ float x)
Definition: math.h:218
double retval
Definition: math.h:25
_Check_return_ double __cdecl acos(_In_ double x)
float float_t
Definition: math.h:15
#define _Inout_
Definition: no_sal2.h:244
_Check_return_ __CRT_INLINE float fmodf(_In_ float x, _In_ float y)
Definition: math.h:212
_CRTIMP double const _HUGE
Definition: huge_val.c:6
_Check_return_ double __cdecl log10(_In_ double x)
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 flag
Definition: glfuncs.h:52
_Check_return_ _CRTIMP double __cdecl _chgsign(_In_ double x)
_Check_return_ __CRT_INLINE long lroundl(_In_ long double x)
Definition: math.h:260
_Check_return_ __CRT_INLINE long long llrint(_In_ double x)
Definition: math.h:270
_Check_return_ __CRT_INLINE float _copysignf(_In_ float x, _In_ float y)
Definition: math.h:201
#define __CRTDECL
Definition: crtdefs.h:155
_Check_return_ __CRT_INLINE long double floorl(_In_ long double x)
Definition: math.h:237
_Check_return_ __CRT_INLINE long double modfl(_In_ long double x, _Out_ long double *y)
Definition: math.h:252
_Check_return_ __CRT_INLINE long double rintl(_In_ long double x)
Definition: math.h:266
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
_Check_return_ __CRT_INLINE long double _chgsignl(_In_ long double number)
Definition: math.h:248
#define _In_
Definition: no_sal2.h:204
_Check_return_ __CRT_INLINE long double atanl(_In_ long double x)
Definition: math.h:230
_Check_return_ __CRT_INLINE float rintf(_In_ float x)
Definition: math.h:265
_Check_return_ __CRT_INLINE float tanf(_In_ float x)
Definition: math.h:220
_Check_return_ __CRT_INLINE long double cosl(_In_ long double x)
Definition: math.h:233
int __CRTDECL _matherr(_Inout_ struct _exception *exception)
_Check_return_ __CRT_INLINE float hypotf(_In_ float x, _In_ float y)
Definition: math.h:224
#define _In_z_
Definition: no_sal2.h:239
_Check_return_ __CRT_INLINE long lround(_In_ double x)
Definition: math.h:258
_Check_return_ __CRT_INLINE float sinf(_In_ float x)
Definition: math.h:217
GLint y0
Definition: linetemp.h:96
_Check_return_ _CRTIMP double __cdecl frexp(_In_ double x, _Out_ int *y)
_Check_return_ __CRT_INLINE float log10f(_In_ float x)
Definition: math.h:214
_Check_return_ __CRT_INLINE float atanf(_In_ float x)
Definition: math.h:205
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
_Check_return_ int __cdecl abs(_In_ int x)
_Check_return_ double __cdecl atan(_In_ double x)
double arg1
Definition: math.h:23
_Check_return_ __CRT_INLINE long double powl(_In_ long double x, _In_ long double y)
Definition: math.h:243
_Check_return_ double __cdecl exp(_In_ double x)
_Check_return_ _CRTIMP double __cdecl _jn(_In_ int x, _In_ double y)
_Check_return_ __CRT_INLINE long double log10l(_In_ long double x)
Definition: math.h:242
_Check_return_ __CRT_INLINE float _hypotf(_In_ float x, _In_ float y)
Definition: math.h:202
_Check_return_ _CRTIMP double __cdecl _j1(_In_ double x)
_Check_return_ __CRT_INLINE float __CRTDECL fabsf(_In_ float x)
Definition: math.h:164
_Check_return_ __CRT_INLINE long double ceill(_In_ long double x)
Definition: math.h:232
_Check_return_ __CRT_INLINE long double fmodl(_In_ long double x, _In_ long double y)
Definition: math.h:238
_Check_return_ __CRT_INLINE float asinf(_In_ float x)
Definition: math.h:204
_Check_return_ long __cdecl labs(_In_ long x)
_Check_return_ __CRT_INLINE float atan2f(_In_ float x, _In_ float y)
Definition: math.h:206
_Check_return_ __CRT_INLINE long long llroundl(_In_ long double x)
Definition: math.h:263
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
_Check_return_ __CRT_INLINE float ceilf(_In_ float x)
Definition: math.h:207
_Check_return_ __CRT_INLINE float coshf(_In_ float x)
Definition: math.h:209
_Check_return_ double __cdecl sin(_In_ double x)
_Check_return_ __CRT_INLINE float tanhf(_In_ float x)
Definition: math.h:221
_Check_return_ __CRT_INLINE long long llroundf(_In_ float x)
Definition: math.h:262
_Check_return_ _CRTIMP double __cdecl _y0(_In_ double x)
_Check_return_ _CRTIMP double __cdecl modf(_In_ double x, _Out_ double *y)