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__)) 120 #if __SIZEOF_DOUBLE__ == __SIZEOF_FLOAT__ 131 #define __ASM_ALIAS(x) __asm(#x) 134 #define __ASM_ALIAS(x) 144 __ATTR_CONST__
extern float cosf (
float __x);
145 __ATTR_CONST__
extern double cos (
double __x) __ASM_ALIAS(
cosf);
150 __ATTR_CONST__
extern float sinf (
float __x);
151 __ATTR_CONST__
extern double sin (
double __x) __ASM_ALIAS(
sinf);
156 __ATTR_CONST__
extern float tanf (
float __x);
157 __ATTR_CONST__
extern double tan (
double __x) __ASM_ALIAS(
tanf);
163 static inline float fabsf (
float __x)
165 return __builtin_fabsf (__x);
168 static inline double fabs (
double __x)
170 return __builtin_fabs (__x);
177 __ATTR_CONST__
extern float fmodf (
float __x,
float __y);
178 __ATTR_CONST__
extern double fmod (
double __x,
double __y) __ASM_ALIAS(
fmodf);
192 extern float modff (
float __x,
float *__iptr);
195 extern double modf (
double __x,
double *__iptr) __ASM_ALIAS(
modff);
200 __ATTR_CONST__
extern float sqrtf (
float __x);
203 __ATTR_CONST__
extern double sqrt (
double __x) __ASM_ALIAS(
sqrtf);
208 __ATTR_CONST__
extern float cbrtf (
float __x);
209 __ATTR_CONST__
extern double cbrt (
double __x) __ASM_ALIAS(
cbrtf);
219 __ATTR_CONST__
extern float hypotf (
float __x,
float __y);
220 __ATTR_CONST__
extern double hypot (
double __x,
double __y) __ASM_ALIAS(
hypotf);
227 __ATTR_CONST__
extern float squaref (
float __x);
228 __ATTR_CONST__
extern double square (
double __x) __ASM_ALIAS(
squaref);
234 __ATTR_CONST__
extern float floorf (
float __x);
235 __ATTR_CONST__
extern double floor (
double __x) __ASM_ALIAS(
floorf);
241 __ATTR_CONST__
extern float ceilf (
float __x);
242 __ATTR_CONST__
extern double ceil (
double __x) __ASM_ALIAS(
ceilf);
259 __ATTR_CONST__
extern float frexpf (
float __x,
int *__pexp);
260 __ATTR_CONST__
extern double frexp (
double __x,
int *__pexp) __ASM_ALIAS(
frexpf);
267 __ATTR_CONST__
extern float ldexpf (
float __x,
int __exp);
268 __ATTR_CONST__
extern double ldexp (
double __x,
int __exp) __ASM_ALIAS(
ldexpf);
273 __ATTR_CONST__
extern float expf (
float __x);
274 __ATTR_CONST__
extern double exp (
double __x) __ASM_ALIAS(
expf);
279 __ATTR_CONST__
extern float coshf (
float __x);
280 __ATTR_CONST__
extern double cosh (
double __x) __ASM_ALIAS(
coshf);
285 __ATTR_CONST__
extern float sinhf (
float __x);
286 __ATTR_CONST__
extern double sinh (
double __x) __ASM_ALIAS(
sinhf);
291 __ATTR_CONST__
extern float tanhf (
float __x);
292 __ATTR_CONST__
extern double tanh (
double __x) __ASM_ALIAS(
tanhf);
299 __ATTR_CONST__
extern float acosf (
float __x);
300 __ATTR_CONST__
extern double acos (
double __x) __ASM_ALIAS(
acosf);
307 __ATTR_CONST__
extern float asinf (
float __x);
308 __ATTR_CONST__
extern double asin (
double __x) __ASM_ALIAS(
asinf);
314 __ATTR_CONST__
extern float atanf (
float __x);
315 __ATTR_CONST__
extern double atan (
double __x) __ASM_ALIAS(
atanf);
323 __ATTR_CONST__
extern float atan2f (
float __y,
float __x);
324 __ATTR_CONST__
extern double atan2 (
double __y,
double __x) __ASM_ALIAS(
atan2f);
329 __ATTR_CONST__
extern float logf (
float __x);
330 __ATTR_CONST__
extern double log (
double __x) __ASM_ALIAS(
logf);
335 __ATTR_CONST__
extern float log10f (
float __x);
336 __ATTR_CONST__
extern double log10 (
double __x) __ASM_ALIAS(
log10f);
341 __ATTR_CONST__
extern float powf (
float __x,
float __y);
342 __ATTR_CONST__
extern double pow (
double __x,
double __y) __ASM_ALIAS(
powf);
348 __ATTR_CONST__
extern int isnanf (
float __x);
349 __ATTR_CONST__
extern int isnan (
double __x) __ASM_ALIAS(
isnanf);
358 __ATTR_CONST__
extern int isinff (
float __x);
359 __ATTR_CONST__
extern int isinf (
double __x) __ASM_ALIAS(
isinff);
375 return __exp != 0xff;
378 #if __SIZEOF_DOUBLE__ == __SIZEOF_FLOAT__ 389 __ATTR_CONST__
static inline float copysignf (
float __x,
float __y)
395 :
"0" (__x),
"r" (__y) );
399 __ATTR_CONST__
static inline double copysign (
double __x,
double __y)
402 "bst %r1+%2-1, 7" "\n\t" 405 :
"r" (__y),
"n" (__SIZEOF_DOUBLE__));
416 __ATTR_CONST__
extern int signbitf (
float __x);
423 __ATTR_CONST__
extern float fdimf (
float __x,
float __y);
424 __ATTR_CONST__
extern double fdim (
double __x,
double __y) __ASM_ALIAS(
fdimf);
432 __ATTR_CONST__
extern float fmaf (
float __x,
float __y,
float __z);
433 __ATTR_CONST__
extern double fma (
double __x,
double __y,
double __z) __ASM_ALIAS(
fmaf);
440 __ATTR_CONST__
extern float fmaxf (
float __x,
float __y);
441 __ATTR_CONST__
extern double fmax (
double __x,
double __y) __ASM_ALIAS(
fmaxf);
448 __ATTR_CONST__
extern float fminf (
float __x,
float __y);
449 __ATTR_CONST__
extern double fmin (
double __x,
double __y) __ASM_ALIAS(
fminf);
455 __ATTR_CONST__
extern float truncf (
float __x);
456 __ATTR_CONST__
extern double trunc (
double __x) __ASM_ALIAS(
truncf);
466 __ATTR_CONST__
extern float roundf (
float __x);
467 __ATTR_CONST__
extern double round (
double __x) __ASM_ALIAS(
roundf);
479 __ATTR_CONST__
extern long lroundf (
float __x);
480 __ATTR_CONST__
extern long lround (
double __x) __ASM_ALIAS(
lroundf);
493 __ATTR_CONST__
extern long lrintf (
float __x);
494 __ATTR_CONST__
extern long lrint (
double __x) __ASM_ALIAS(
lrintf);
static float copysignf(float __x, float __y)
Definition: math.h:389
float fdimf(float __x, float __y)
double hypot(double __x, double __y) __ASM_ALIAS(hypotf)
double cbrt(double __x) __ASM_ALIAS(cbrtf)
double asin(double __x) __ASM_ALIAS(asinf)
float fminf(float __x, float __y)
double acos(double __x) __ASM_ALIAS(acosf)
double fmax(double __x, double __y) __ASM_ALIAS(fmaxf)
double round(double __x) __ASM_ALIAS(roundf)
double ldexp(double __x, int __exp) __ASM_ALIAS(ldexpf)
int isnan(double __x) __ASM_ALIAS(isnanf)
int signbit(double __x) __ASM_ALIAS(signbitf)
double log10(double __x) __ASM_ALIAS(log10f)
static int isfinitef(float __x)
Definition: math.h:365
float fmodf(float __x, float __y)
static float fabsf(float __x)
Definition: math.h:163
double cosh(double __x) __ASM_ALIAS(coshf)
float atan2f(float __y, float __x)
float fmaxf(float __x, float __y)
double fdim(double __x, double __y) __ASM_ALIAS(fdimf)
double atan2(double __y, double __x) __ASM_ALIAS(atan2f)
double pow(double __x, double __y) __ASM_ALIAS(powf)
double fmin(double __x, double __y) __ASM_ALIAS(fminf)
float modff(float __x, float *__iptr)
static int isfinite(double __x)
Definition: math.h:379
double log(double __x) __ASM_ALIAS(logf)
double floor(double __x) __ASM_ALIAS(floorf)
double tanh(double __x) __ASM_ALIAS(tanhf)
int isinf(double __x) __ASM_ALIAS(isinff)
double trunc(double __x) __ASM_ALIAS(truncf)
float fmaf(float __x, float __y, float __z)
double modf(double __x, double *__iptr) __ASM_ALIAS(modff)
double frexp(double __x, int *__pexp) __ASM_ALIAS(frexpf)
double sin(double __x) __ASM_ALIAS(sinf)
double tan(double __x) __ASM_ALIAS(tanf)
double square(double __x) __ASM_ALIAS(squaref)
long lrint(double __x) __ASM_ALIAS(lrintf)
double cos(double __x) __ASM_ALIAS(cosf)
double fma(double __x, double __y, double __z) __ASM_ALIAS(fmaf)
float ldexpf(float __x, int __exp)
float frexpf(float __x, int *__pexp)
double exp(double __x) __ASM_ALIAS(expf)
double fmod(double __x, double __y) __ASM_ALIAS(fmodf)
double sinh(double __x) __ASM_ALIAS(sinhf)
long lround(double __x) __ASM_ALIAS(lroundf)
float powf(float __x, float __y)
double sqrt(double __x) __ASM_ALIAS(sqrtf)
float hypotf(float __x, float __y)
double atan(double __x) __ASM_ALIAS(atanf)
double ceil(double __x) __ASM_ALIAS(ceilf)