1#ifndef _MSL_COMMON_FLOAT_H
2#define _MSL_COMMON_FLOAT_H
15#define fpclassify(x) ((sizeof(x) == sizeof(float)) ? __fpclassifyf(x) : __fpclassifyd(x))
16#define signbit(x) ((sizeof(x) == sizeof(float)) ? __signbitf(x) : __signbitd(x))
17#define isfinite(x) ((fpclassify(x) > 2))
19#define __signbitf(x) ((int)(__HI(x) & 0x80000000))
22#define __signbitd(x) ((int)(__HI(x) & 0x80000000))
30 unsigned long integer = *(
unsigned long*)&__value;
32 switch (integer & 0x7f800000) {
34 if ((integer & 0x7fffff) != 0) {
40 if ((integer & 0x7fffff) != 0) {
50 switch (
__HI(__value) & 0x7ff00000) {
52 if ((
__HI(__value) & 0x000fffff) || (
__LO(__value) & 0xffffffff))
59 if ((
__HI(__value) & 0x000fffff) || (
__LO(__value) & 0xffffffff))
69#define FLT_MANT_DIG 24
71#define FLT_MIN_EXP (-125)
72#define FLT_MIN_10_EXP (-37)
73#define FLT_MAX_EXP 128
74#define FLT_MAX_10_EXP 38
77#define FLT_MAX 3.4028235e38f
78#define FLT_EPSILON 1.1920929e-7f
80#define FLT_MAX (*(float*) __float_max)
81#define FLT_EPSILON (*(float*) __float_epsilon)
84#define DBL_MANT_DIG 53
86#define DBL_MIN_EXP (-1021)
87#define DBL_MIN_10_EXP (-308)
88#define DBL_MAX_EXP 1024
89#define DBL_MAX_10_EXP 308
int __fpclassifyf(float __value)
Definition float.h:29
unsigned long __float_huge[]
Definition float.c:7
int __fpclassifyd(double __value)
Definition float.h:49
unsigned long __float_epsilon[]
Definition float.c:13
unsigned long __float_max[]
Definition float.c:10
unsigned long __float_nan[]
Definition float.c:4