@@ -60,8 +60,8 @@ class LdExpTestTemplate : public LIBC_NAMESPACE::testing::Test {
60
60
}
61
61
62
62
void testOverflow (LdExpFunc func) {
63
- NormalFloat x (FPBits::MAX_BIASED_EXPONENT - 10 , NormalFloat::ONE + 0xF00BA ,
64
- 0 );
63
+ NormalFloat x (Sign::POS, FPBits::MAX_BIASED_EXPONENT - 10 ,
64
+ NormalFloat::ONE + 0xF00BA );
65
65
for (int32_t exp = 10 ; exp < 100 ; ++exp) {
66
66
ASSERT_FP_EQ (inf, func (T (x), exp));
67
67
ASSERT_FP_EQ (neg_inf, func (-T (x), exp));
@@ -75,7 +75,7 @@ class LdExpTestTemplate : public LIBC_NAMESPACE::testing::Test {
75
75
int32_t exp_array[] = {base_exponent + 5 , base_exponent + 4 ,
76
76
base_exponent + 3 , base_exponent + 2 ,
77
77
base_exponent + 1 };
78
- T x = NormalFloat (0 , MANTISSA, 0 );
78
+ T x = NormalFloat (Sign::POS, 0 , MANTISSA );
79
79
for (int32_t exp : exp_array) {
80
80
ASSERT_FP_EQ (func (x, -exp), x > 0 ? zero : neg_zero);
81
81
}
@@ -88,20 +88,21 @@ class LdExpTestTemplate : public LIBC_NAMESPACE::testing::Test {
88
88
int32_t exp_array[] = {base_exponent + 5 , base_exponent + 4 ,
89
89
base_exponent + 3 , base_exponent + 2 ,
90
90
base_exponent + 1 };
91
- T x = NormalFloat (-FPBits::EXP_BIAS, MANTISSA, 0 );
91
+ T x = NormalFloat (Sign::POS, -FPBits::EXP_BIAS, MANTISSA);
92
92
for (int32_t exp : exp_array) {
93
93
ASSERT_FP_EQ (func (x, -exp), x > 0 ? zero : neg_zero);
94
94
}
95
95
}
96
96
97
97
void testNormalOperation (LdExpFunc func) {
98
- T val_array[] = {
99
- // Normal numbers
100
- NormalFloat (100 , MANTISSA, 0 ), NormalFloat (-100 , MANTISSA, 0 ),
101
- NormalFloat (100 , MANTISSA, 1 ), NormalFloat (-100 , MANTISSA, 1 ),
102
- // Subnormal numbers
103
- NormalFloat (-FPBits::EXP_BIAS, MANTISSA, 0 ),
104
- NormalFloat (-FPBits::EXP_BIAS, MANTISSA, 1 )};
98
+ T val_array[] = {// Normal numbers
99
+ NormalFloat (Sign::POS, 100 , MANTISSA),
100
+ NormalFloat (Sign::POS, -100 , MANTISSA),
101
+ NormalFloat (Sign::NEG, 100 , MANTISSA),
102
+ NormalFloat (Sign::NEG, -100 , MANTISSA),
103
+ // Subnormal numbers
104
+ NormalFloat (Sign::POS, -FPBits::EXP_BIAS, MANTISSA),
105
+ NormalFloat (Sign::NEG, -FPBits::EXP_BIAS, MANTISSA)};
105
106
for (int32_t exp = 0 ; exp <= FPBits::FRACTION_LEN; ++exp) {
106
107
for (T x : val_array) {
107
108
// We compare the result of ldexp with the result
@@ -120,14 +121,14 @@ class LdExpTestTemplate : public LIBC_NAMESPACE::testing::Test {
120
121
}
121
122
122
123
// Normal which trigger mantissa overflow.
123
- T x = NormalFloat (-FPBits::EXP_BIAS + 1 ,
124
- StorageType (2 ) * NormalFloat::ONE - StorageType (1 ), 0 );
124
+ T x = NormalFloat (Sign::POS, -FPBits::EXP_BIAS + 1 ,
125
+ StorageType (2 ) * NormalFloat::ONE - StorageType (1 ));
125
126
ASSERT_FP_EQ (func (x, -1 ), x / 2 );
126
127
ASSERT_FP_EQ (func (-x, -1 ), -x / 2 );
127
128
128
129
// Start with a normal number high exponent but pass a very low number for
129
130
// exp. The result should be a subnormal number.
130
- x = NormalFloat (FPBits::EXP_BIAS, NormalFloat::ONE, 0 );
131
+ x = NormalFloat (Sign::POS, FPBits::EXP_BIAS, NormalFloat::ONE);
131
132
int exp = -FPBits::MAX_BIASED_EXPONENT - 5 ;
132
133
T result = func (x, exp);
133
134
FPBits result_bits (result);
@@ -141,7 +142,7 @@ class LdExpTestTemplate : public LIBC_NAMESPACE::testing::Test {
141
142
142
143
// Start with a subnormal number but pass a very high number for exponent.
143
144
// The result should not be infinity.
144
- x = NormalFloat (-FPBits::EXP_BIAS + 1 , NormalFloat::ONE >> 10 , 0 );
145
+ x = NormalFloat (Sign::POS, -FPBits::EXP_BIAS + 1 , NormalFloat::ONE >> 10 );
145
146
exp = FPBits::MAX_BIASED_EXPONENT + 5 ;
146
147
ASSERT_FALSE (FPBits (func (x, exp)).is_inf ());
147
148
// But if the exp is large enough to oversome than the normalization shift,
0 commit comments