71#define M_E 2.7182818284590452354
74#define M_LOG2E 1.4426950408889634074
77#define M_LOG10E 0.43429448190325182765
80#define M_LN2 0.69314718055994530942
83#define M_LN10 2.30258509299404568402
86#define M_PI 3.14159265358979323846
89#define M_PI_2 1.57079632679489661923
92#define M_PI_4 0.78539816339744830962
95#define M_1_PI 0.31830988618379067154
98#define M_2_PI 0.63661977236758134308
101#define M_2_SQRTPI 1.12837916709551257390
104#define M_SQRT2 1.41421356237309504880
107#define M_SQRT1_2 0.70710678118654752440
110#define NAN __builtin_nan("")
113#define INFINITY __builtin_inf()
116#ifndef __ATTR_CONST__
117# define __ATTR_CONST__ __attribute__((__const__))
127__ATTR_CONST__
extern float cosf (
float __x);
128__ATTR_CONST__
extern double cos (
double __x);
129__ATTR_CONST__
extern long double cosl (
long double __x);
134__ATTR_CONST__
extern float sinf (
float __x);
135__ATTR_CONST__
extern double sin (
double __x);
136__ATTR_CONST__
extern long double sinl (
long double __x);
141__ATTR_CONST__
extern float tanf (
float __x);
142__ATTR_CONST__
extern double tan (
double __x);
143__ATTR_CONST__
extern long double tanl (
long double __x);
149static inline float fabsf (
float __x)
151 return __builtin_fabsf (__x);
154static inline double fabs (
double __x)
156 return __builtin_fabs (__x);
159static inline long double fabsl (
long double __x)
161 return __builtin_fabsl (__x);
168__ATTR_CONST__
extern float fmodf (
float __x,
float __y);
169__ATTR_CONST__
extern double fmod (
double __x,
double __y);
170__ATTR_CONST__
extern long double fmodl (
long double __x,
long double __y);
184extern float modff (
float __x,
float *__iptr);
185extern double modf (
double __x,
double *__iptr);
186extern long double modfl (
long double __x,
long double *__iptr);
191__ATTR_CONST__
extern float sqrtf (
float __x);
192__ATTR_CONST__
extern double sqrt (
double __x);
193__ATTR_CONST__
extern long double sqrtl (
long double __x);
198__ATTR_CONST__
extern float cbrtf (
float __x);
199__ATTR_CONST__
extern double cbrt (
double __x);
200__ATTR_CONST__
extern long double cbrtl (
long double __x);
210__ATTR_CONST__
extern float hypotf (
float __x,
float __y);
211__ATTR_CONST__
extern double hypot (
double __x,
double __y);
212__ATTR_CONST__
extern long double hypotl (
long double __x,
long double __y);
219__ATTR_CONST__
extern float squaref (
float __x);
220__ATTR_CONST__
extern double square (
double __x);
221__ATTR_CONST__
extern long double squarel (
long double __x);
227__ATTR_CONST__
extern float floorf (
float __x);
228__ATTR_CONST__
extern double floor (
double __x);
229__ATTR_CONST__
extern long double floorl (
long double __x);
235__ATTR_CONST__
extern float ceilf (
float __x);
236__ATTR_CONST__
extern double ceil (
double __x);
237__ATTR_CONST__
extern long double ceill (
long double __x);
254__ATTR_CONST__
extern float frexpf (
float __x,
int *__pexp);
255__ATTR_CONST__
extern double frexp (
double __x,
int *__pexp);
256__ATTR_CONST__
extern long double frexpl (
long double __x,
int *__pexp);
263__ATTR_CONST__
extern float ldexpf (
float __x,
int __exp);
264__ATTR_CONST__
extern double ldexp (
double __x,
int __exp);
265__ATTR_CONST__
extern long double ldexpl (
long double __x,
int __exp);
270__ATTR_CONST__
extern float expf (
float __x);
271__ATTR_CONST__
extern double exp (
double __x);
272__ATTR_CONST__
extern long double expl (
long double __x);
277__ATTR_CONST__
extern float coshf (
float __x);
278__ATTR_CONST__
extern double cosh (
double __x);
279__ATTR_CONST__
extern long double coshl (
long double __x);
284__ATTR_CONST__
extern float sinhf (
float __x);
285__ATTR_CONST__
extern double sinh (
double __x);
286__ATTR_CONST__
extern long double sinhl (
long double __x);
291__ATTR_CONST__
extern float tanhf (
float __x);
292__ATTR_CONST__
extern double tanh (
double __x);
293__ATTR_CONST__
extern long double tanhl (
long double __x);
300__ATTR_CONST__
extern float acosf (
float __x);
301__ATTR_CONST__
extern double acos (
double __x);
302__ATTR_CONST__
extern long double acosl (
long double __x);
309__ATTR_CONST__
extern float asinf (
float __x);
310__ATTR_CONST__
extern double asin (
double __x);
311__ATTR_CONST__
extern long double asinl (
long double __x);
317__ATTR_CONST__
extern float atanf (
float __x);
318__ATTR_CONST__
extern double atan (
double __x);
319__ATTR_CONST__
extern long double atanl (
long double __x);
327__ATTR_CONST__
extern float atan2f (
float __y,
float __x);
328__ATTR_CONST__
extern double atan2 (
double __y,
double __x);
329__ATTR_CONST__
extern long double atan2l (
long double __y,
long double __x);
334__ATTR_CONST__
extern float logf (
float __x);
335__ATTR_CONST__
extern double log (
double __x);
336__ATTR_CONST__
extern long double logl (
long double __x);
341__ATTR_CONST__
extern float log10f (
float __x);
342__ATTR_CONST__
extern double log10 (
double __x);
343__ATTR_CONST__
extern long double log10l (
long double __x);
348__ATTR_CONST__
extern float powf (
float __x,
float __y);
349__ATTR_CONST__
extern double pow (
double __x,
double __y);
350__ATTR_CONST__
extern long double powl (
long double __x,
long double __y);
356__ATTR_CONST__
extern int isnanf (
float __x);
357__ATTR_CONST__
extern int isnan (
double __x);
358__ATTR_CONST__
extern int isnanl (
long double __x);
367__ATTR_CONST__
extern int isinff (
float __x);
368__ATTR_CONST__
extern int isinf (
double __x);
369__ATTR_CONST__
extern int isinfl (
long double __x);
385 return __exp != 0xff;
388#if __SIZEOF_DOUBLE__ == __SIZEOF_FLOAT__
389static inline int isfinite (
double __x)
394int isfinite (
double __x);
397#if __SIZEOF_LONG_DOUBLE__ == __SIZEOF_FLOAT__
398static inline int isfinitel (
long double __x)
403int isfinitel (
long double __x);
410__ATTR_CONST__
static inline float copysignf (
float __x,
float __y)
416 :
"0" (__x),
"r" (__y) );
420__ATTR_CONST__
static inline double copysign (
double __x,
double __y)
423 "bst %r1+%2-1, 7" "\n\t"
426 :
"r" (__y),
"n" (__SIZEOF_DOUBLE__));
430__ATTR_CONST__
static inline long double copysignl (
long double __x,
long double __y)
433 "bst %r1+%2-1, 7" "\n\t"
436 :
"r" (__y),
"n" (__SIZEOF_LONG_DOUBLE__));
448__ATTR_CONST__
extern int signbit (
double __x);
449__ATTR_CONST__
extern int signbitl (
long double __x);
455__ATTR_CONST__
extern float fdimf (
float __x,
float __y);
456__ATTR_CONST__
extern double fdim (
double __x,
double __y);
457__ATTR_CONST__
extern long double fdiml (
long double __x,
long double __y);
465__ATTR_CONST__
extern float fmaf (
float __x,
float __y,
float __z);
466__ATTR_CONST__
extern double fma (
double __x,
double __y,
double __z);
467__ATTR_CONST__
extern long double fmal (
long double __x,
long double __y,
long double __z);
474__ATTR_CONST__
extern float fmaxf (
float __x,
float __y);
475__ATTR_CONST__
extern double fmax (
double __x,
double __y);
476__ATTR_CONST__
extern long double fmaxl (
long double __x,
long double __y);
483__ATTR_CONST__
extern float fminf (
float __x,
float __y);
484__ATTR_CONST__
extern double fmin (
double __x,
double __y);
485__ATTR_CONST__
extern long double fminl (
long double __x,
long double __y);
491__ATTR_CONST__
extern float truncf (
float __x);
492__ATTR_CONST__
extern double trunc (
double __x);
493__ATTR_CONST__
extern long double truncl (
long double __x);
503__ATTR_CONST__
extern float roundf (
float __x);
504__ATTR_CONST__
extern double round (
double __x);
505__ATTR_CONST__
extern long double roundl (
long double __x);
517__ATTR_CONST__
extern long lroundf (
float __x);
518__ATTR_CONST__
extern long lround (
double __x);
519__ATTR_CONST__
extern long lroundl (
long double __x);
532__ATTR_CONST__
extern long lrintf (
float __x);
533__ATTR_CONST__
extern long lrint (
double __x);
534__ATTR_CONST__
extern long lrintl (
long double __x);
float fminf(float __x, float __y)
static int isfinitef(float __x)
Definition: math.h:375
float frexpf(float __x, int *__pexp)
float fdimf(float __x, float __y)
float ldexpf(float __x, int __exp)
static float fabsf(float __x)
Definition: math.h:149
float powf(float __x, float __y)
float fmaf(float __x, float __y, float __z)
float fmodf(float __x, float __y)
float hypotf(float __x, float __y)
float atan2f(float __y, float __x)
float fmaxf(float __x, float __y)
static float copysignf(float __x, float __y)
Definition: math.h:410
float modff(float __x, float *__iptr)