Home
last modified time | relevance | path

Searched refs:FPBits (Results 1 – 25 of 99) sorted by relevance

1234

/llvm-project-15.0.7/libc/test/src/math/
H A DFmaTest.h24 using FPBits = __llvm_libc::fputil::FPBits<T>; variable
53 EXPECT_FP_EQ(func(T(0.5), T(FPBits(FPBits::MIN_SUBNORMAL)), in test_special_numbers()
54 T(FPBits(FPBits::MIN_SUBNORMAL))), in test_special_numbers()
57 T v = T(FPBits(FPBits::MIN_NORMAL + UIntType(1))); in test_special_numbers()
59 T(FPBits(FPBits::MIN_NORMAL))), in test_special_numbers()
62 T z = T(FPBits(FPBits::MAX_NORMAL)); in test_special_numbers()
72 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in test_subnormal_range()
74 v <= FPBits::MAX_SUBNORMAL && w >= FPBits::MIN_SUBNORMAL; in test_subnormal_range()
87 for (UIntType v = FPBits::MIN_NORMAL, w = FPBits::MAX_NORMAL; in test_normal_range()
88 v <= FPBits::MAX_NORMAL && w >= FPBits::MIN_NORMAL; in test_normal_range()
[all …]
H A DHypotTest.h25 using FPBits = __llvm_libc::fputil::FPBits<T>; variable
26 using UIntType = typename FPBits::UIntType;
28 const T inf = T(__llvm_libc::fputil::FPBits<T>::inf());
30 const T zero = T(__llvm_libc::fputil::FPBits<T>::zero());
50 UIntType max_value = FPBits::MAX_SUBNORMAL << scale; in test_subnormal_range()
54 v <= max_value && w >= FPBits::MIN_SUBNORMAL; in test_subnormal_range()
56 T x = T(FPBits(v)), y = T(FPBits(w)); in test_subnormal_range()
74 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in test_normal_range()
76 for (UIntType v = FPBits::MIN_NORMAL, w = FPBits::MAX_NORMAL; in test_normal_range()
77 v <= FPBits::MAX_NORMAL && w >= FPBits::MIN_NORMAL; in test_normal_range()
[all …]
H A DILogbTest.h29 func(T(__llvm_libc::fputil::FPBits<T>::build_nan(1)))); in test_special_numbers()
76 using FPBits = __llvm_libc::fputil::FPBits<T>; in test_subnormal_range() local
77 using UIntType = typename FPBits::UIntType; in test_subnormal_range()
80 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in test_subnormal_range()
81 for (UIntType v = FPBits::MIN_SUBNORMAL; v <= FPBits::MAX_SUBNORMAL; in test_subnormal_range()
83 T x = T(FPBits(v)); in test_subnormal_range()
95 using FPBits = __llvm_libc::fputil::FPBits<T>; in test_normal_range() local
96 using UIntType = typename FPBits::UIntType; in test_normal_range()
98 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in test_normal_range()
99 for (UIntType v = FPBits::MIN_NORMAL; v <= FPBits::MAX_NORMAL; v += STEP) { in test_normal_range()
[all …]
H A DRemQuoTest.h23 using FPBits = __llvm_libc::fputil::FPBits<T>; variable
24 using UIntType = typename FPBits::UIntType;
28 const T inf = T(__llvm_libc::fputil::FPBits<T>::inf());
100 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in testSubnormalRange()
101 for (UIntType v = FPBits::MIN_SUBNORMAL, w = FPBits::MAX_SUBNORMAL; in testSubnormalRange()
102 v <= FPBits::MAX_SUBNORMAL && w >= FPBits::MIN_SUBNORMAL; in testSubnormalRange()
104 T x = T(FPBits(v)), y = T(FPBits(w)); in testSubnormalRange()
114 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in testNormalRange()
115 for (UIntType v = FPBits::MIN_NORMAL, w = FPBits::MAX_NORMAL; in testNormalRange()
116 v <= FPBits::MAX_NORMAL && w >= FPBits::MIN_NORMAL; in testNormalRange()
[all …]
H A DLdExpTest.h23 using FPBits = __llvm_libc::fputil::FPBits<T>; variable
25 using UIntType = typename FPBits::UIntType;
31 const T zero = T(__llvm_libc::fputil::FPBits<T>::zero());
33 const T inf = T(__llvm_libc::fputil::FPBits<T>::inf());
102 NormalFloat(-FPBits::EXPONENT_BIAS, MANTISSA, 0), in testNormalOperation()
121 int exp = -FPBits::MAX_EXPONENT - 5; in testNormalOperation()
123 FPBits result_bits(result); in testNormalOperation()
130 ASSERT_TRUE(FPBits(result).is_zero()); in testNormalOperation()
135 exp = FPBits::MAX_EXPONENT + 5; in testNormalOperation()
136 ASSERT_FALSE(FPBits(func(x, exp)).is_inf()); in testNormalOperation()
[all …]
H A Dexpm1f_test.cpp58 float x = float(FPBits(0xc2cffff8U)); in TEST()
61 x = float(FPBits(0xc2d00008U)); in TEST()
71 x = float(FPBits(0x42affff8U)); in TEST()
76 x = float(FPBits(0x42b00008U)); in TEST()
81 x = float(FPBits(0xc2affff8U)); in TEST()
86 x = float(FPBits(0xc2b00008U)); in TEST()
91 x = float(FPBits(0x3dc252ddU)); in TEST()
96 x = float(FPBits(0x3e35bec5U)); in TEST()
101 x = float(FPBits(0x942ed494U)); in TEST()
106 x = float(FPBits(0xbdc1c6cbU)); in TEST()
[all …]
H A DRIntTest.h33 using FPBits = __llvm_libc::fputil::FPBits<T>;
36 const T zero = T(FPBits::zero());
38 const T inf = T(FPBits::inf());
39 const T neg_inf = T(FPBits::neg_inf());
40 const T nan = T(FPBits::build_nan(1));
98 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in testSubnormalRange()
99 for (UIntType i = FPBits::MIN_SUBNORMAL; i <= FPBits::MAX_SUBNORMAL; in testSubnormalRange()
101 T x = T(FPBits(i)); in testSubnormalRange()
112 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in testNormalRange()
113 for (UIntType i = FPBits::MIN_NORMAL; i <= FPBits::MAX_NORMAL; i += STEP) { in testNormalRange()
[all …]
H A Dexpf_test.cpp44 EXPECT_FP_EQ(inf, __llvm_libc::expf(float(FPBits(0x7f7fffffU)))); in TEST()
47 EXPECT_FP_EQ(inf, __llvm_libc::expf(float(FPBits(0x42cffff8U)))); in TEST()
50 EXPECT_FP_EQ(inf, __llvm_libc::expf(float(FPBits(0x42d00008U)))); in TEST()
59 float x = float(FPBits(0xc2cffff8U)); in TEST()
64 x = float(FPBits(0xc2d00008U)); in TEST()
76 x = float(FPBits(0x42affff8U)); in TEST()
81 x = float(FPBits(0x42b00008U)); in TEST()
86 x = float(FPBits(0xc2affff8U)); in TEST()
91 x = float(FPBits(0xc2b00008U)); in TEST()
96 x = float(FPBits(0xc236bd8cU)); in TEST()
[all …]
H A DNextAfterTest.h22 using FPBits = __llvm_libc::fputil::FPBits<T>; variable
29 const T zero = T(FPBits::zero());
30 const T neg_zero = T(FPBits::neg_zero());
31 const T inf = T(FPBits::inf());
32 const T neg_inf = T(FPBits::neg_inf());
33 const T nan = T(FPBits::build_nan(1));
163 FPBits x_bits = FPBits(x); in testBoundaries()
164 FPBits result_bits = FPBits(result); in testBoundaries()
171 result_bits = FPBits(result); in testBoundaries()
179 result_bits = FPBits(result); in testBoundaries()
[all …]
H A DRoundToIntegerTest.h32 using FPBits = __llvm_libc::fputil::FPBits<F>;
33 using UIntType = typename FPBits::UIntType;
37 const F inf = F(__llvm_libc::fputil::FPBits<F>::inf());
122 FPBits bits(F(1.0)); in do_round_numbers_test()
186 FPBits bits(F(1.0)); in testIntegerOverflow()
213 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in testSubnormalRange()
214 for (UIntType i = FPBits::MIN_SUBNORMAL; i <= FPBits::MAX_SUBNORMAL; in testSubnormalRange()
216 F x = F(FPBits(i)); in testSubnormalRange()
256 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in testNormalRange()
257 for (UIntType i = FPBits::MIN_NORMAL; i <= FPBits::MAX_NORMAL; i += STEP) { in testNormalRange()
[all …]
/llvm-project-15.0.7/libc/test/src/math/differential_testing/
H A DBinaryOpSingleOutputDiff.h17 using FPBits = fputil::FPBits<T>; variable
18 using UIntType = typename FPBits::UIntType;
37 T x = T(FPBits(bitsX)); in run_diff_in_range()
38 T y = T(FPBits(bitsY)); in run_diff_in_range()
39 FPBits myBits = FPBits(myFunc(x, y)); in run_diff_in_range()
40 FPBits otherBits = FPBits(otherFunc(x, y)); in run_diff_in_range()
71 T x = T(FPBits(bitsX)); in run_perf_in_range()
72 T y = T(FPBits(bitsY)); in run_perf_in_range()
128 /* endingBit= */ FPBits::MAX_SUBNORMAL, 1'000'001, log); in run_diff()
131 myFunc, otherFunc, /* startingBit= */ FPBits::MIN_NORMAL, in run_diff()
[all …]
H A DSingleInputSingleOutputDiff.h17 using FPBits = fputil::FPBits<T>; variable
18 using UIntType = typename FPBits::UIntType;
31 T x = T(FPBits(bits)); in runDiff()
34 UIntType myBits = FPBits(myResult).uintval(); in runDiff()
35 UIntType otherBits = FPBits(otherResult).uintval(); in runDiff()
55 T x = T(FPBits(bits)); in runPerfInRange()
95 /* endingBit= */ FPBits::MAX_SUBNORMAL, log); in runPerf()
97 runPerfInRange(myFunc, otherFunc, /* startingBit= */ FPBits::MIN_NORMAL, in runPerf()
98 /* endingBit= */ FPBits::MAX_NORMAL, log); in runPerf()
/llvm-project-15.0.7/libc/src/__support/FPUtil/
H A DManipulationFunctions.h29 FPBits<T> bits(x); in frexp()
46 FPBits<T> bits(x); in modf()
52 return bits.get_sign() ? T(FPBits<T>::neg_zero()) : T(FPBits<T>::zero()); in modf()
58 return bits.get_sign() ? T(FPBits<T>::neg_zero()) : T(FPBits<T>::zero()); in modf()
68 FPBits<T> xbits(x); in copysign()
78 FPBits<T> bits(x); in ilogb()
105 FPBits<T> bits(x); in logb()
124 FPBits<T> bits(x); in ldexp()
136 return bits.get_sign() ? T(FPBits<T>::neg_inf()) : T(FPBits<T>::inf()); in ldexp()
140 return bits.get_sign() ? T(FPBits<T>::neg_zero()) : T(FPBits<T>::zero()); in ldexp()
[all …]
H A DNormalFloat.h33 using UIntType = typename FPBits<T>::UIntType;
57 explicit NormalFloat(T x) { init_from_bits(FPBits<T>(x)); } in NormalFloat()
59 explicit NormalFloat(FPBits<T> bits) { init_from_bits(bits); } in NormalFloat()
92 int biased_exponent = exponent + FPBits<T>::EXPONENT_BIAS; in T()
96 return sign ? T(FPBits<T>::neg_inf()) : T(FPBits<T>::inf()); in T()
99 FPBits<T> result(T(0.0)); in T()
102 constexpr int SUBNORMAL_EXPONENT = -FPBits<T>::EXPONENT_BIAS + 1; in T()
141 void init_from_bits(FPBits<T> bits) { in init_from_bits()
156 exponent = 1 - FPBits<T>::EXPONENT_BIAS - shift; in init_from_bits()
214 return sign ? FPBits<long double>::neg_inf() : FPBits<long double>::inf();
[all …]
H A DFPBits.h41 template <typename T> struct FPBits { struct
108 constexpr explicit FPBits(XType x) in FPBits() argument
113 constexpr explicit FPBits(XType x) : bits(x) {} in FPBits() argument
115 FPBits() : bits(0) {} in FPBits() argument
151 static constexpr FPBits<T> zero(bool sign = false) { argument
157 static constexpr FPBits<T> inf() { in inf() argument
158 FPBits<T> bits; in inf()
163 static constexpr FPBits<T> neg_inf() { in neg_inf() argument
164 FPBits<T> bits = inf(); in neg_inf()
170 FPBits<T> bits = inf(); in build_nan() argument
[all …]
/llvm-project-15.0.7/libc/src/__support/FPUtil/x86_64/
H A DNextAfterLongDouble.h27 using FPBits = FPBits<long double>; in nextafter() local
28 FPBits from_bits(from); in nextafter()
32 FPBits to_bits(to); in nextafter()
45 using UIntType = FPBits::UIntType; in nextafter()
55 int_val = SIGN_VAL + FPBits::MIN_NORMAL; in nextafter()
67 if (int_val == (SIGN_VAL + FPBits::MIN_NORMAL)) { in nextafter()
70 int_val = SIGN_VAL + FPBits::MAX_SUBNORMAL; in nextafter()
88 if (int_val == FPBits::MIN_NORMAL) { in nextafter()
89 int_val = FPBits::MAX_SUBNORMAL; in nextafter()
100 if (int_val == FPBits::MAX_SUBNORMAL) { in nextafter()
[all …]
H A DLongDoubleBits.h35 template <> struct FPBits<long double> {
100 FPBits() : bits(0) {}
112 explicit FPBits(XType x) : bits(x) {}
157 static FPBits<long double> zero() { return FPBits<long double>(0.0l); }
159 static FPBits<long double> neg_zero() {
160 FPBits<long double> bits(0.0l);
165 static FPBits<long double> inf() {
166 FPBits<long double> bits(0.0l);
172 static FPBits<long double> neg_inf() {
173 FPBits<long double> bits(0.0l);
[all …]
/llvm-project-15.0.7/libc/src/math/generic/
H A Dlog2f.cpp102 using FPBits = typename fputil::FPBits<float>; typedef
103 FPBits xbits(x);
107 switch (FPBits(x).uintval()) {
128 if (xbits.uintval() < FPBits::MIN_NORMAL ||
129 xbits.uintval() > FPBits::MAX_NORMAL) {
131 return static_cast<float>(FPBits::neg_inf());
134 return FPBits::build_nan(1 << (fputil::MantissaWidth<float>::VALUE - 1));
151 FPBits f = xbits;
H A Dlogf.cpp54 using FPBits = typename fputil::FPBits<float>; typedef
55 FPBits xbits(x);
57 switch (FPBits(x).uintval()) {
94 if (xbits.uintval() < FPBits::MIN_NORMAL ||
95 xbits.uintval() > FPBits::MAX_NORMAL) {
97 return static_cast<float>(FPBits::neg_inf());
100 return FPBits::build_nan(1 << (fputil::MantissaWidth<float>::VALUE - 1));
115 FPBits f = xbits;
H A Dlog1pf.cpp38 using FPBits = typename fputil::FPBits<double>; in log() typedef
39 FPBits xbits(x); in log()
42 return static_cast<float>(fputil::FPBits<float>::neg_inf()); in log()
45 if (xbits.uintval() > FPBits::MAX_NORMAL) { in log()
47 return fputil::FPBits<float>::build_nan( in log()
62 FPBits f = xbits; in log()
81 using FPBits = typename fputil::FPBits<float>; typedef
82 FPBits xbits(x);
H A Dexp2f.cpp51 using FPBits = typename fputil::FPBits<float>; typedef
52 FPBits xbits(x);
99 return static_cast<float>(FPBits(FPBits::MAX_NORMAL));
104 return x + static_cast<float>(FPBits::inf());
115 return static_cast<float>(FPBits(FPBits::MIN_SUBNORMAL));
145 fputil::FPBits<double> exp_hi(
H A Dexpf.cpp24 using FPBits = typename fputil::FPBits<float>; typedef
25 FPBits xbits(x);
51 return static_cast<float>(FPBits(FPBits::MIN_SUBNORMAL));
61 return static_cast<float>(FPBits(FPBits::MAX_NORMAL));
66 return x + static_cast<float>(FPBits::inf());
H A Dlog10f.cpp107 using FPBits = typename fputil::FPBits<float>; typedef
108 FPBits xbits(x);
145 if (xbits.uintval() < FPBits::MIN_NORMAL ||
146 xbits.uintval() > FPBits::MAX_NORMAL) {
148 return static_cast<float>(FPBits::neg_inf());
151 return FPBits::build_nan(1 << (fputil::MantissaWidth<float>::VALUE - 1));
166 FPBits f = xbits;
/llvm-project-15.0.7/libc/test/src/stdlib/
H A Datof_test.cpp21 __llvm_libc::fputil::FPBits<double> expected_fp = in TEST()
22 __llvm_libc::fputil::FPBits<double>(uint64_t(0x405ec00000000000)); in TEST()
27 __llvm_libc::fputil::FPBits<double> actual_fp = in TEST()
28 __llvm_libc::fputil::FPBits<double>(result); in TEST()
38 __llvm_libc::fputil::FPBits<double> expected_fp = in TEST()
39 __llvm_libc::fputil::FPBits<double>(uint64_t(0)); in TEST()
44 __llvm_libc::fputil::FPBits<double> actual_fp = in TEST()
45 __llvm_libc::fputil::FPBits<double>(result); in TEST()
/llvm-project-15.0.7/libc/src/__support/
H A Dstr_to_float.h95 using BitsType = typename fputil::FPBits<T>::UIntType; in eisel_lemire()
327 *outputExp2 = fputil::FPBits<T>::MAX_EXPONENT; in simple_decimal_conversion()
378 if (exp2 >= fputil::FPBits<T>::MAX_EXPONENT) { in simple_decimal_conversion()
380 *outputExp2 = fputil::FPBits<T>::MAX_EXPONENT; in simple_decimal_conversion()
418 if (exp2 >= fputil::FPBits<T>::MAX_EXPONENT) { in simple_decimal_conversion()
513 fputil::FPBits<T> result; in clinger_fast_path()
517 result = fputil::FPBits<T>(float_mantissa); in clinger_fast_path()
533 result = fputil::FPBits<T>(float_mantissa * in clinger_fast_path()
539 result = fputil::FPBits<T>(float_mantissa / in clinger_fast_path()
565 *outputExp2 = fputil::FPBits<T>::MAX_EXPONENT; in decimal_exp_to_float()
[all …]

1234