ReactOS  0.4.15-dev-3331-g8ebe441
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 #ifdef _MSC_VER
103 /* Prevent the compiler from generating calls to _CIatan2 */
104 #pragma function(atan2)
105 #ifdef _M_AMD64
106 /* Prevent the compiler from generating calls to __vdecl_xxx */
107 #pragma function(cos,pow,sin,tan)
108 #endif
109 #endif
110 
111 #ifndef _CRT_MATHERR_DEFINED
112 #define _CRT_MATHERR_DEFINED
114 #endif
115 
116 #ifndef _CRT_ATOF_DEFINED
117 #define _CRT_ATOF_DEFINED
118 _Check_return_ _CRTIMP double __cdecl atof(_In_z_ const char *str);
119 _Check_return_ _CRTIMP double __cdecl _atof_l(_In_z_ const char *str, _In_opt_ _locale_t locale); // vista+
120 #endif /* _CRT_ATOF_DEFINED */
121 
122 #ifndef _SIGN_DEFINED
123 #define _SIGN_DEFINED
124 _Check_return_ _CRTIMP double __cdecl _copysign(_In_ double x, _In_ double sgn);
126 #endif
127 
129 _Check_return_ _CRTIMP double __cdecl _hypot(_In_ double x, _In_ double y);
130 _Check_return_ _CRTIMP double __cdecl _j0(_In_ double x);
131 _Check_return_ _CRTIMP double __cdecl _j1(_In_ double x);
132 _Check_return_ _CRTIMP double __cdecl _jn(_In_ int x, _In_ double y);
133 _Check_return_ _CRTIMP double __cdecl _nextafter(_In_ double x, _In_ double y);
134 _Check_return_ _CRTIMP double __cdecl _y0(_In_ double x);
135 _Check_return_ _CRTIMP double __cdecl _y1(_In_ double x);
136 _Check_return_ _CRTIMP double __cdecl _yn(_In_ int x, _In_ double y);
137 _Check_return_ _CRTIMP double __cdecl ceil(_In_ double x);
138 _Check_return_ _CRTIMP double __cdecl floor(_In_ double x);
139 _Check_return_ _CRTIMP double __cdecl frexp(_In_ double x, _Out_ int *y);
140 _Check_return_ _CRTIMP double __cdecl ldexp(_In_ double x, _In_ int y);
141 _Check_return_ _CRTIMP double __cdecl modf(_In_ double x, _Out_ double *y);
142 
143 #if defined(__i386__) || defined(_M_IX86)
144 _Check_return_ _CRTIMP int __cdecl _set_SSE2_enable(_In_ int flag);
145 #endif
146 
147 #if defined(__x86_64) || defined(_M_AMD64)
148 _Check_return_ _CRTIMP float __cdecl _nextafterf(_In_ float x, _In_ float y);
149 _Check_return_ _CRTIMP int __cdecl _isnanf(_In_ float x);
150 _Check_return_ _CRTIMP int __cdecl _fpclassf(_In_ float x);
151 #ifdef _MSC_VER
152 /* Prevent the compiler from generating calls to __vdecl_floor2 */
153 #pragma function(floor)
154 #endif
155 #endif
156 
157 #if defined(__x86_64) || defined(_M_AMD64) || \
158  defined(__arm__) || defined(_M_ARM) || \
159  defined(__arm64__) || defined(_M_ARM64)
160 _Check_return_ _CRTIMP int __cdecl _finitef(_In_ float x);
161 _Check_return_ _CRTIMP float __cdecl _logbf(_In_ float x);
162 #endif /* _M_AMD64 || _M_ARM || _M_ARM64 */
163 
164 #if defined(__ia64__) || defined (_M_IA64)
165 _Check_return_ _CRTIMP float __cdecl ldexpf(_In_ float x, _In_ int y);
166 _Check_return_ _CRTIMP long double __cdecl tanl(_In_ long double x);
167 #else
168 _Check_return_ __CRT_INLINE float __CRTDECL ldexpf(_In_ float x, _In_ int y) { return (float)ldexp(x, y); }
169 _Check_return_ __CRT_INLINE long double __CRTDECL tanl(_In_ long double x) { return (tan((double)x)); }
170 #endif
171 
172 #if defined(__ia64__) || defined(_M_IA64) || \
173  defined(__arm__) || defined(_M_ARM) || \
174  defined(__arm64__) || defined(_M_ARM64)
176 #else
177 _Check_return_ __CRT_INLINE float __CRTDECL fabsf(_In_ float x) { return ((float)fabs((double)x)); }
178 #endif /* _M_IA64 || _M_ARM || _M_ARM64 */
179 
180 _Check_return_ float __cdecl _chgsignf(_In_ float x);
181 _Check_return_ float __cdecl _copysignf(_In_ float x, _In_ float y);
182 _Check_return_ float __cdecl _hypotf(_In_ float x, _In_ float y);
183 _Check_return_ float __cdecl acosf(_In_ float x);
184 _Check_return_ float __cdecl asinf(_In_ float x);
185 _Check_return_ float __cdecl atanf(_In_ float x);
186 _Check_return_ float __cdecl atan2f(_In_ float x, _In_ float y);
187 _Check_return_ float __cdecl ceilf(_In_ float x);
188 _Check_return_ float __cdecl cosf(_In_ float x);
189 _Check_return_ float __cdecl coshf(_In_ float x);
190 _Check_return_ float __cdecl expf(_In_ float x);
191 _Check_return_ float __cdecl floorf(_In_ float x);
192 _Check_return_ float __cdecl fmodf(_In_ float x, _In_ float y);
193 _Check_return_ float __cdecl logf(_In_ float x);
194 _Check_return_ float __cdecl log10f(_In_ float x);
195 _Check_return_ float __cdecl modff(_In_ float x, _Out_ float *y);
196 _Check_return_ float __cdecl powf(_In_ float b, _In_ float e);
197 _Check_return_ float __cdecl sinf(_In_ float x);
198 _Check_return_ float __cdecl sinhf(_In_ float x);
199 _Check_return_ float __cdecl sqrtf(_In_ float x);
200 _Check_return_ float __cdecl tanf(_In_ float x);
201 _Check_return_ float __cdecl tanhf(_In_ float x);
202 
203 #if defined(_MSC_VER)
204 /* Make sure intrinsics don't get in our way */
205 #if defined(_M_AMD64) || defined(_M_ARM)
206 #pragma function(acosf,asinf,atanf,atan2f,ceilf,cosf,coshf,expf,floorf,fmodf,logf,log10f,powf,sinf,sinhf,sqrtf,tanf,tanhf)
207 #endif /* defined(_M_AMD64) || defined(_M_ARM) */
208 #if (_MSC_VER >= 1920)
209 #pragma function(_hypotf)
210 #endif
211 #endif /* _MSC_VER */
212 
213 #if !defined(_CRTBLD)
214 _Check_return_ __CRT_INLINE float _chgsignf(_In_ float x) { return (float)_chgsign((double)x); }
215 _Check_return_ __CRT_INLINE float _copysignf(_In_ float x, _In_ float y) { return (float)_copysign((double)x, (double)y); }
216 _Check_return_ __CRT_INLINE float _hypotf(_In_ float x, _In_ float y) { return (float)_hypot((double)x, (double)y); }
217 _Check_return_ __CRT_INLINE float acosf(_In_ float x) { return (float)acos((double)x); }
218 _Check_return_ __CRT_INLINE float asinf(_In_ float x) { return (float)asin((double)x); }
219 _Check_return_ __CRT_INLINE float atanf(_In_ float x) { return (float)atan((double)x); }
220 _Check_return_ __CRT_INLINE float atan2f(_In_ float x, _In_ float y) { return (float)atan2((double)x,(double)y); }
221 _Check_return_ __CRT_INLINE float ceilf(_In_ float x) { return (float)ceil((double)x); }
222 _Check_return_ __CRT_INLINE float cosf(_In_ float x) { return (float)cos((double)x); }
223 _Check_return_ __CRT_INLINE float coshf(_In_ float x) { return (float)cosh((double)x); }
224 _Check_return_ __CRT_INLINE float expf(_In_ float x) { return (float)exp((double)x); }
225 _Check_return_ __CRT_INLINE float floorf(_In_ float x) { return (float)floor((double)x); }
226 _Check_return_ __CRT_INLINE float fmodf(_In_ float x, _In_ float y) { return (float)fmod((double)x,(double)y); }
227 _Check_return_ __CRT_INLINE float logf(_In_ float x) { return (float)log((double)x); }
228 _Check_return_ __CRT_INLINE float log10f(_In_ float x) { return (float)log10((double)x); }
229 _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; }
230 _Check_return_ __CRT_INLINE float powf(_In_ float x, _In_ float y) { return (float)pow((double)x,(double)y); }
231 _Check_return_ __CRT_INLINE float sinf(_In_ float x) { return (float)sin((double)x); }
232 _Check_return_ __CRT_INLINE float sinhf(_In_ float x) { return (float)sinh((double)x); }
233 _Check_return_ __CRT_INLINE float sqrtf(_In_ float x) { return (float)sqrt((double)x); }
234 _Check_return_ __CRT_INLINE float tanf(_In_ float x) { return (float)tan((double)x); }
235 _Check_return_ __CRT_INLINE float tanhf(_In_ float x) { return (float)tanh((double)x); }
236 #endif /* !defined(_CRTBLD) */
237 
238 _Check_return_ __CRT_INLINE double hypot(_In_ double x, _In_ double y) { return _hypot(x, y); }
239 _Check_return_ __CRT_INLINE float hypotf(_In_ float x, _In_ float y) { return _hypotf(x, y); }
240 _Check_return_ __CRT_INLINE float frexpf(_In_ float x, _Out_ int *y) { return ((float)frexp((double)x,y)); }
241 
242 /* long double equals double, so just use inline wrappers */
243 _Check_return_ __CRT_INLINE long double acosl(_In_ long double x) { return (acos((double)x)); }
244 _Check_return_ __CRT_INLINE long double asinl(_In_ long double x) { return (asin((double)x)); }
245 _Check_return_ __CRT_INLINE long double atanl(_In_ long double x) { return (atan((double)x)); }
246 _Check_return_ __CRT_INLINE long double atan2l(_In_ long double y, _In_ long double x) { return (atan2((double)y, (double)x)); }
247 _Check_return_ __CRT_INLINE long double ceill(_In_ long double x) { return (ceil((double)x)); }
248 _Check_return_ __CRT_INLINE long double cosl(_In_ long double x) { return (cos((double)x)); }
249 _Check_return_ __CRT_INLINE long double coshl(_In_ long double x) { return (cosh((double)x)); }
250 _Check_return_ __CRT_INLINE long double expl(_In_ long double x) { return (exp((double)x)); }
251 _Check_return_ __CRT_INLINE long double fabsl(_In_ long double x) { return fabs((double)x); }
252 _Check_return_ __CRT_INLINE long double floorl(_In_ long double x) { return (floor((double)x)); }
253 _Check_return_ __CRT_INLINE long double fmodl(_In_ long double x, _In_ long double y) { return (fmod((double)x, (double)y)); }
254 _Check_return_ __CRT_INLINE long double frexpl(_In_ long double x, _Out_ int *y) { return (frexp((double)x, y)); }
255 _Check_return_ __CRT_INLINE long double hypotl(_In_ long double x, _In_ long double y) { return _hypot((double)x, (double)y); }
256 _Check_return_ __CRT_INLINE long double logl(_In_ long double x) { return (log((double)x)); }
257 _Check_return_ __CRT_INLINE long double log10l(_In_ long double x) { return (log10((double)x)); }
258 _Check_return_ __CRT_INLINE long double powl(_In_ long double x, _In_ long double y) { return (pow((double)x, (double)y)); }
259 _Check_return_ __CRT_INLINE long double sinl(_In_ long double x) { return (sin((double)x)); }
260 _Check_return_ __CRT_INLINE long double sinhl(_In_ long double x) { return (sinh((double)x)); }
261 _Check_return_ __CRT_INLINE long double sqrtl(_In_ long double x) { return (sqrt((double)x)); }
262 _Check_return_ __CRT_INLINE long double tanhl(_In_ long double x) {return (tanh((double)x)); }
263 _Check_return_ __CRT_INLINE long double _chgsignl(_In_ long double number) { return _chgsign((double)number); }
264 _Check_return_ __CRT_INLINE long double _copysignl(_In_ long double number, _In_ long double sign) { return _copysign((double)number, (double)sign); }
265 _Check_return_ __CRT_INLINE long double _hypotl(_In_ long double x, _In_ long double y) { return _hypot((double)x, (double)y); }
266 _Check_return_ __CRT_INLINE long double ldexpl(_In_ long double x, _In_ int y) { return ldexp((double)x, y); }
267 _Check_return_ __CRT_INLINE long double modfl(_In_ long double x, _Out_ long double *y) { return (long double)modf((double)x, (double *)y); }
268 
269 /* Support for some functions, not exported in MSVCRT */
270 #if (_MSC_VER >= 1929)
271 _Check_return_ long lrint(_In_ double x);
272 _Check_return_ long lrintf(_In_ float x);
273 _Check_return_ long lrintl(_In_ long double x);
274 #pragma function(lrint, lrintf, lrintl)
275 #endif
276 _Check_return_ __CRT_INLINE double round(_In_ double x) { return (x < 0) ? ceil(x - 0.5f) : floor(x + 0.5); }
277 _Check_return_ __CRT_INLINE float roundf(_In_ float x) { return (x < 0) ? ceilf(x - 0.5f) : floorf(x + 0.5); }
278 _Check_return_ __CRT_INLINE long double roundl(_In_ long double x) { return (x < 0) ? ceill(x - 0.5f) : floorl(x + 0.5); }
279 _Check_return_ __CRT_INLINE long lround(_In_ double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
280 _Check_return_ __CRT_INLINE long lroundf(_In_ float x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
281 _Check_return_ __CRT_INLINE long lroundl(_In_ long double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
282 _Check_return_ __CRT_INLINE long long llround(_In_ double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
283 _Check_return_ __CRT_INLINE long long llroundf(_In_ float x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
284 _Check_return_ __CRT_INLINE long long llroundl(_In_ long double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
285 _Check_return_ __CRT_INLINE double rint(_In_ double x) { return round(x); }
286 _Check_return_ __CRT_INLINE float rintf(_In_ float x) { return roundf(x); }
287 _Check_return_ __CRT_INLINE long double rintl(_In_ long double x) { return roundl(x); }
288 _Check_return_ __CRT_INLINE long lrint(_In_ double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
289 _Check_return_ __CRT_INLINE long lrintf(_In_ float x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
290 _Check_return_ __CRT_INLINE long lrintl(_In_ long double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
291 _Check_return_ __CRT_INLINE long long llrint(_In_ double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
292 _Check_return_ __CRT_INLINE long long llrintf(_In_ float x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
293 _Check_return_ __CRT_INLINE long long llrintl(_In_ long double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); }
294 _Check_return_ __CRT_INLINE double log2(_In_ double x) { return log(x) / log(2); }
295 
296 #ifndef NO_OLDNAMES /* !__STDC__ */
297 
298 #define DOMAIN _DOMAIN
299 #define SING _SING
300 #define OVERFLOW _OVERFLOW
301 #define UNDERFLOW _UNDERFLOW
302 #define TLOSS _TLOSS
303 #define PLOSS _PLOSS
304 #define matherr _matherr
305 //_CRTIMP extern double HUGE;
306 #define HUGE _HUGE
307 //_CRT_NONSTDC_DEPRECATE(_cabs) _CRTIMP double __cdecl cabs(_In_ struct _complex x);
308 #define cabs _cabs
309 
310 _CRT_NONSTDC_DEPRECATE(_j0) _CRTIMP double __cdecl j0(_In_ double x);
311 _CRT_NONSTDC_DEPRECATE(_j1) _CRTIMP double __cdecl j1(_In_ double x);
315 _CRT_NONSTDC_DEPRECATE(_yn) _CRTIMP double __cdecl yn(_In_ int x, _In_ double y);
316 
317 #endif /* NO_OLDNAMES */
318 
319 #ifdef __cplusplus
320 }
321 #ifndef _CMATH_
322 extern "C++" {
323 
324 //inline long abs(_In_ long x) { return labs(x); }
325 _Check_return_ inline double abs(_In_ double x) throw() { return fabs(x); }
326 
327 _Check_return_ inline float abs(_In_ float x) throw() { return fabsf(x); }
328 _Check_return_ inline float acos(_In_ float x) throw() { return acosf(x); }
329 _Check_return_ inline float asin(_In_ float x) throw() { return asinf(x); }
330 _Check_return_ inline float atan(_In_ float x) throw() { return atanf(x); }
331 _Check_return_ inline float atan2(_In_ float y, _In_ float x) throw() { return atan2f(y, x); }
332 _Check_return_ inline float ceil(_In_ float x) throw() { return ceilf(x); }
333 _Check_return_ inline float copysign(_In_ float x, _In_ float y) throw() { return _copysignf(x, y); }
334 _Check_return_ inline float cos(_In_ float x) throw() { return cosf(x); }
335 _Check_return_ inline float cosh(_In_ float x) throw() { return coshf(x); }
336 _Check_return_ inline float exp(_In_ float x) throw() { return expf(x); }
337 _Check_return_ inline float fabs(_In_ float x) throw() { return fabsf(x); }
338 _Check_return_ inline float floor(_In_ float x) throw() { return floorf(x); }
339 _Check_return_ inline float fmod(_In_ float x, _In_ float y) throw() { return fmodf(x, y); }
340 _Check_return_ inline float frexp(_In_ float x, _Out_ int * y) throw() { return frexpf(x, y); }
341 _Check_return_ inline float hypot(_In_ float x, _In_ float y) throw() { return _hypotf(x, y); }
342 _Check_return_ inline float ldexp(_In_ float x, _In_ int y) throw() { return ldexpf(x, y); }
343 _Check_return_ inline float log(_In_ float x) throw() { return logf(x); }
344 _Check_return_ inline float log10(_In_ float x) throw() { return log10f(x); }
345 _Check_return_ inline float modf(_In_ float x, _Out_ float * y) throw() { return modff(x, y); }
346 _Check_return_ inline float pow(_In_ float x, _In_ float y) throw() { return powf(x, y); }
347 _Check_return_ inline float sin(_In_ float x) throw() { return sinf(x); }
348 _Check_return_ inline float sinh(_In_ float x) throw() { return sinhf(x); }
349 _Check_return_ inline float sqrt(_In_ float x) throw() { return sqrtf(x); }
350 _Check_return_ inline float tan(_In_ float x) throw() { return tanf(x); }
351 _Check_return_ inline float tanh(_In_ float x) throw() { return tanhf(x); }
352 
353 _Check_return_ inline long double abs(_In_ long double x) throw() { return fabsl(x); }
354 _Check_return_ inline long double acos(_In_ long double x) throw() { return acosl(x); }
355 _Check_return_ inline long double asin(_In_ long double x) throw() { return asinl(x); }
356 _Check_return_ inline long double atan(_In_ long double x) throw() { return atanl(x); }
357 _Check_return_ inline long double atan2(_In_ long double y, _In_ long double x) throw() { return atan2l(y, x); }
358 _Check_return_ inline long double ceil(_In_ long double x) throw() { return ceill(x); }
359 _Check_return_ inline long double copysign(_In_ long double x, _In_ long double y) throw() { return _copysignl(x, y); }
360 _Check_return_ inline long double cos(_In_ long double x) throw() { return cosl(x); }
361 _Check_return_ inline long double cosh(_In_ long double x) throw() { return coshl(x); }
362 _Check_return_ inline long double exp(_In_ long double x) throw() { return expl(x); }
363 _Check_return_ inline long double fabs(_In_ long double x) throw() { return fabsl(x); }
364 _Check_return_ inline long double floor(_In_ long double x) throw() { return floorl(x); }
365 _Check_return_ inline long double fmod(_In_ long double x, _In_ long double y) throw() { return fmodl(x, y); }
366 _Check_return_ inline long double frexp(_In_ long double x, _Out_ int * y) throw() { return frexpl(x, y); }
367 _Check_return_ inline long double hypot(_In_ long double x, _In_ long double y) throw() { return hypotl(x, y); }
368 _Check_return_ inline long double ldexp(_In_ long double x, _In_ int y) throw() { return ldexpl(x, y); }
369 _Check_return_ inline long double log(_In_ long double x) throw() { return logl(x); }
370 _Check_return_ inline long double log10(_In_ long double x) throw() { return log10l(x); }
371 _Check_return_ inline long double modf(_In_ long double x, _Out_ long double * y) throw() { return modfl(x, y); }
372 _Check_return_ inline long double pow(_In_ long double x, _In_ long double y) throw() { return powl(x, y); }
373 _Check_return_ inline long double sin(_In_ long double x) throw() { return sinl(x); }
374 _Check_return_ inline long double sinh(_In_ long double x) throw() { return sinhl(x); }
375 _Check_return_ inline long double sqrt(_In_ long double x) throw() { return sqrtl(x); }
376 _Check_return_ inline long double tan(_In_ long double x) throw() { return tanl(x); }
377 _Check_return_ inline long double tanh(_In_ long double x) throw() { return tanhl(x); }
378 }
379 #endif /* !_CMATH_ */
380 #endif /* __cplusplus */
381 
382 #pragma pack(pop)
383 
384 #endif /* !_INC_MATH */
385 
386 #if defined(_USE_MATH_DEFINES) && !defined(_MATH_DEFINES_DEFINED)
387 #define _MATH_DEFINES_DEFINED
388 
389 #define M_E 2.71828182845904523536
390 #define M_LOG2E 1.44269504088896340736
391 #define M_LOG10E 0.434294481903251827651
392 #define M_LN2 0.693147180559945309417
393 #define M_LN10 2.30258509299404568402
394 #define M_PI 3.14159265358979323846
395 #define M_PI_2 1.57079632679489661923
396 #define M_PI_4 0.785398163397448309616
397 #define M_1_PI 0.318309886183790671538
398 #define M_2_PI 0.636619772367581343076
399 #define M_2_SQRTPI 1.12837916709551257390
400 #define M_SQRT2 1.41421356237309504880
401 #define M_SQRT1_2 0.707106781186547524401
402 
403 #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:265
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
static size_t double int int int * sign
Definition: printf.c:69
_Check_return_ __CRT_INLINE long double __CRTDECL tanl(_In_ long double x)
Definition: math.h:169
_Check_return_ float __cdecl logf(_In_ float x)
Definition: math.h:227
_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:246
double __cdecl copysign(double, double)
_Check_return_ __CRT_INLINE long double asinl(_In_ long double x)
Definition: math.h:244
_CRT_NONSTDC_DEPRECATE(_j0) _CRTIMP double __cdecl j0(_In_ double x)
_Check_return_ float __cdecl floorf(_In_ float x)
Definition: math.h:225
_Check_return_ __CRT_INLINE float __CRTDECL ldexpf(_In_ float x, _In_ int y)
Definition: math.h:168
_Check_return_ __CRT_INLINE double round(_In_ double x)
Definition: math.h:276
_Check_return_ __CRT_INLINE long double sinhl(_In_ long double x)
Definition: math.h:260
_Check_return_ __CRT_INLINE long long llrintf(_In_ float x)
Definition: math.h:292
_Check_return_ double __cdecl log(_In_ double x)
_Check_return_ float __cdecl powf(_In_ float b, _In_ float e)
Definition: math.h:230
double arg2
Definition: math.h:24
#define _In_opt_
Definition: ms_sal.h:309
#define _Inout_
Definition: ms_sal.h:378
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:264
#define _Out_
Definition: ms_sal.h:345
_Check_return_ float __cdecl acosf(_In_ float x)
Definition: math.h:217
_Check_return_ __CRT_INLINE long double expl(_In_ long double x)
Definition: math.h:250
_Check_return_ _CRTIMP double __cdecl _atof_l(_In_z_ const char *str, _In_opt_ _locale_t locale)
#define _CRTIMP
Definition: crtdefs.h:72
_Check_return_ __CRT_INLINE long double coshl(_In_ long double x)
Definition: math.h:249
_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:261
_Check_return_ __CRT_INLINE long double frexpl(_In_ long double x, _Out_ int *y)
Definition: math.h:254
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:251
_Check_return_ double __cdecl pow(_In_ double x, double y)
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:288
_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:293
_Check_return_ __CRT_INLINE long double hypotl(_In_ long double x, _In_ long double y)
Definition: math.h:255
_Check_return_ double __cdecl sinh(_In_ double x)
_Check_return_ __CRT_INLINE double rint(_In_ double x)
Definition: math.h:285
_Check_return_ double __cdecl cos(_In_ double x)
_Check_return_ float __cdecl expf(_In_ float x)
Definition: math.h:224
_Check_return_ float __cdecl cosf(_In_ float x)
Definition: math.h:222
_Check_return_ __CRT_INLINE long lroundf(_In_ float x)
Definition: math.h:280
double x
Definition: math.h:32
_Check_return_ __CRT_INLINE long double roundl(_In_ long double x)
Definition: math.h:278
_Check_return_ __CRT_INLINE float roundf(_In_ float x)
Definition: math.h:277
_Check_return_ _CRTIMP double __cdecl atof(_In_z_ const char *str)
_Check_return_ __CRT_INLINE long lrintl(_In_ long double x)
Definition: math.h:290
#define _CRT_JIT_INTRINSIC
Definition: crtdefs.h:253
_Check_return_ __CRT_INLINE double log2(_In_ double x)
Definition: math.h:294
_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:243
static size_t double number
Definition: printf.c:69
_Check_return_ __CRT_INLINE long double sinl(_In_ long double x)
Definition: math.h:259
_Check_return_ double __cdecl asin(_In_ double x)
_Check_return_ float __cdecl sqrtf(_In_ float x)
Definition: math.h:233
_Check_return_ __CRT_INLINE long long llround(_In_ double x)
Definition: math.h:282
_Check_return_ __CRT_INLINE float frexpf(_In_ float x, _Out_ int *y)
Definition: math.h:240
_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:256
_Check_return_ _CRTIMP double __cdecl _y1(_In_ double x)
_Check_return_ float __cdecl _chgsignf(_In_ float x)
Definition: math.h:214
_Check_return_ long long __cdecl llabs(_In_ long long x)
Definition: stdlib.h:1435
_Check_return_ __CRT_INLINE long double ldexpl(_In_ long double x, _In_ int y)
Definition: math.h:266
_Check_return_ __CRT_INLINE long double tanhl(_In_ long double x)
Definition: math.h:262
const WCHAR * str
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl sqrt(_In_ double x)
#define _In_
Definition: ms_sal.h:308
#define _In_z_
Definition: ms_sal.h:313
_Check_return_ __CRT_INLINE double hypot(_In_ double x, _In_ double y)
Definition: math.h:238
_Check_return_ float __cdecl modff(_In_ float x, _Out_ float *y)
Definition: math.h:229
_Check_return_ __CRT_INLINE long lrintf(_In_ float x)
Definition: math.h:289
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_ float __cdecl sinhf(_In_ float x)
Definition: math.h:232
double retval
Definition: math.h:25
_Check_return_ double __cdecl acos(_In_ double x)
float float_t
Definition: math.h:15
_Check_return_ float __cdecl fmodf(_In_ float x, _In_ float y)
Definition: math.h:226
_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:281
_Check_return_ __CRT_INLINE long long llrint(_In_ double x)
Definition: math.h:291
_Check_return_ float __cdecl _copysignf(_In_ float x, _In_ float y)
Definition: math.h:215
#define __CRTDECL
Definition: crtdefs.h:167
_Check_return_ __CRT_INLINE long double floorl(_In_ long double x)
Definition: math.h:252
_Check_return_ __CRT_INLINE long double modfl(_In_ long double x, _Out_ long double *y)
Definition: math.h:267
_Check_return_ __CRT_INLINE long double rintl(_In_ long double x)
Definition: math.h:287
_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:263
_Check_return_ __CRT_INLINE long double atanl(_In_ long double x)
Definition: math.h:245
_Check_return_ __CRT_INLINE float rintf(_In_ float x)
Definition: math.h:286
#define _Check_return_
Definition: ms_sal.h:557
_Check_return_ float __cdecl tanf(_In_ float x)
Definition: math.h:234
_Check_return_ __CRT_INLINE long double cosl(_In_ long double x)
Definition: math.h:248
int __CRTDECL _matherr(_Inout_ struct _exception *exception)
_Check_return_ __CRT_INLINE float hypotf(_In_ float x, _In_ float y)
Definition: math.h:239
static float(__cdecl *square_half_float)(float x
_Check_return_ __CRT_INLINE long lround(_In_ double x)
Definition: math.h:279
_Check_return_ float __cdecl sinf(_In_ float x)
Definition: math.h:231
GLint y0
Definition: linetemp.h:96
_Check_return_ _CRTIMP double __cdecl frexp(_In_ double x, _Out_ int *y)
_Check_return_ float __cdecl log10f(_In_ float x)
Definition: math.h:228
_Check_return_ float __cdecl atanf(_In_ float x)
Definition: math.h:219
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:258
_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:257
_Check_return_ float __cdecl _hypotf(_In_ float x, _In_ float y)
Definition: math.h:216
_Check_return_ _CRTIMP double __cdecl _j1(_In_ double x)
_Check_return_ __CRT_INLINE float __CRTDECL fabsf(_In_ float x)
Definition: math.h:177
_Check_return_ __CRT_INLINE long double ceill(_In_ long double x)
Definition: math.h:247
_Check_return_ __CRT_INLINE long double fmodl(_In_ long double x, _In_ long double y)
Definition: math.h:253
_Check_return_ float __cdecl asinf(_In_ float x)
Definition: math.h:218
_Check_return_ long __cdecl labs(_In_ long x)
_Check_return_ float __cdecl atan2f(_In_ float x, _In_ float y)
Definition: math.h:220
_Check_return_ __CRT_INLINE long long llroundl(_In_ long double x)
Definition: math.h:284
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
_Check_return_ float __cdecl ceilf(_In_ float x)
Definition: math.h:221
_Check_return_ float __cdecl coshf(_In_ float x)
Definition: math.h:223
_Check_return_ double __cdecl sin(_In_ double x)
_Check_return_ float __cdecl tanhf(_In_ float x)
Definition: math.h:235
_Check_return_ __CRT_INLINE long long llroundf(_In_ float x)
Definition: math.h:283
_Check_return_ _CRTIMP double __cdecl _y0(_In_ double x)
_Check_return_ _CRTIMP double __cdecl modf(_In_ double x, _Out_ double *y)