7
#if defined(_MSC_VER) || defined(EMSCRIPTEN)
8
#define FLOAT_NAN ((float)std::numeric_limits<float>::quiet_NaN())
9
#define FLOAT_INF ((float)std::numeric_limits<float>::infinity())
11
#define FLOAT_NAN ((float)NAN)
12
#define FLOAT_INF ((float)INFINITY)
15
#if defined(_MSC_VER) || defined(EMSCRIPTEN)
16
#define DOUBLE_NAN ((double)std::numeric_limits<double>::quiet_NaN())
17
#define DOUBLE_INF ((double)std::numeric_limits<double>::infinity())
19
#define DOUBLE_NAN ((double)NAN)
20
#define DOUBLE_INF ((double)INFINITY)
26
#define NOINLINE __attribute__((noinline))
29
float NOINLINE ret_e() { return (float)2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274; }
30
float NOINLINE ret_minuspi() { return (float)-3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679; }
31
float NOINLINE val() { return 10.f; }
32
float NOINLINE val2() { return -10.f; }
33
float NOINLINE zero() { return 0.f; }
34
float NOINLINE zero2() { return -0.f; }
36
double NOINLINE dret_e() { return (double)2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274; }
37
double NOINLINE dret_minuspi() { return (double)-3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679; }
38
double NOINLINE dval() { return 10.0; }
39
double NOINLINE dval2() { return -10.0; }
40
double NOINLINE dzero() { return 0.0; }
41
double NOINLINE dzero2() { return -0.0; }
43
const float e = ret_e();
44
const float negpi = ret_minuspi();
45
const float inf = FLOAT_INF;
46
const float negInf = -FLOAT_INF;
47
const float floatNan = FLOAT_NAN;
48
const float floatMax = FLT_MAX;
49
const float floatMin = -FLT_MAX;
50
const float posValue = val();
51
const float negValue = val2();
52
const float posZero = zero();
53
const float negZero = zero2();
55
const double de = dret_e();
56
const double dnegpi = dret_minuspi();
57
const double dinf = DOUBLE_INF;
58
const double dnegInf = -DOUBLE_INF;
59
const double doubleNan = DOUBLE_NAN;
60
const double doubleMax = DBL_MAX;
61
const double doubleMin = -DBL_MAX;
62
const double dposValue = dval();
63
const double dnegValue = dval2();
64
const double dposZero = dzero();
65
const double dnegZero = dzero2();
70
printf("negpi: %f\n", negpi);
71
printf("inf: %f\n", inf);
72
printf("negInf: %f\n", negInf);
73
printf("floatNan: %f\n", floatNan);
74
printf("floatMax: %f\n", floatMax);
75
printf("floatMin: %f\n", floatMin);
76
printf("posValue: %f\n", posValue);
77
printf("negValue: %f\n", negValue);
78
printf("posZero: %f\n", posZero);
79
printf("negZero: %f\n", negZero);
81
printf("e: %f\n", de);
82
printf("negpi: %f\n", dnegpi);
83
printf("inf: %f\n", dinf);
84
printf("negInf: %f\n", dnegInf);
85
printf("doubleNan: %f\n", doubleNan);
86
printf("doubleMax: %f\n", doubleMax);
87
printf("doubleMin: %f\n", doubleMin);
88
printf("posValue: %f\n", dposValue);
89
printf("negValue: %f\n", dnegValue);
90
printf("posZero: %f\n", dposZero);
91
printf("negZero: %f\n", dnegZero);