int __fpclassifyf(float);
int __fpclassifyl(long double);
-#define __FLOAT_BITS(f) (((union { float __f; __uint32_t __i; }){ (f) }).__i)
-#define __DOUBLE_BITS(f) (((union { double __f; __uint64_t __i; }){ (f) }).__i)
+#define __FLOAT_BITS(f) (((union { float __f; __uint32_t __i; }){ (float)(f) }).__i)
+#define __DOUBLE_BITS(f) (((union { double __f; __uint64_t __i; }){ (double)(f) }).__i)
#define fpclassify(x) ( \
sizeof(x) == sizeof(float) ? __fpclassifyf(x) : \
extern int signgam;
-double gamma(double);
-float gammaf(float);
-long double gammal(long double);
-
double j0(double);
double j1(double);
double jn(int, double);
void sincosf(float, float*, float*);
void sincosl(long double, long double*, long double*);
+double gamma(double);
+float gammaf(float);
+long double gammal(long double);
+
double lgamma_r(double, int*);
float lgammaf_r(float, int*);
long double lgammal_r(long double, int*);