if (ybits.is_nan())
return y;
if (xbits.is_inf() || ybits.is_zero())
- return FPBits<T>::build_quiet_nan(fputil::Sign::POS, 1).get_val();
+ return FPBits<T>::build_quiet_nan().get_val();
if (xbits.is_zero()) {
q = 0;
return x86::sqrt(x);
} else {
// IEEE floating points formats.
- using Sign = fputil::Sign;
using FPBits_t = typename fputil::FPBits<T>;
using StorageType = typename FPBits_t::StorageType;
constexpr StorageType ONE = StorageType(1) << FPBits_t::FRACTION_LEN;
- constexpr auto FLT_NAN =
- FPBits_t::build_quiet_nan(Sign::POS, ONE >> 1).get_val();
+ constexpr auto FLT_NAN = FPBits_t::build_quiet_nan().get_val();
FPBits_t bits(x);
LIBC_INLINE long double sqrt(long double x) {
using LDBits = FPBits<long double>;
using StorageType = typename LDBits::StorageType;
- using Sign = fputil::Sign;
constexpr StorageType ONE = StorageType(1) << int(LDBits::FRACTION_LEN);
- constexpr auto LDNAN = LDBits::build_quiet_nan(Sign::POS, ONE >> 1).get_val();
+ constexpr auto LDNAN = LDBits::build_quiet_nan().get_val();
LDBits bits(x);
LIBC_NAMESPACE::cpp::numeric_limits<StorageType>::max();
static constexpr T zero = T(FPBits::zero(Sign::POS));
static constexpr T neg_zero = T(FPBits::zero(Sign::NEG));
- static constexpr T aNaN = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ static constexpr T aNaN = T(FPBits::build_quiet_nan());
static constexpr T sNaN = T(FPBits::build_nan(Sign::POS, 1));
static constexpr T inf = T(FPBits::inf(Sign::POS));
static constexpr T neg_inf = T(FPBits::inf(Sign::NEG));
LIBC_NAMESPACE::cpp::numeric_limits<StorageType>::max(); \
const T zero = T(FPBits::zero(Sign::POS)); \
const T neg_zero = T(FPBits::zero(Sign::NEG)); \
- const T aNaN = T(FPBits::build_quiet_nan(Sign::POS, 1)); \
+ const T aNaN = T(FPBits::build_quiet_nan()); \
const T sNaN = T(FPBits::build_nan(Sign::POS, 1)); \
const T inf = T(FPBits::inf(Sign::POS)); \
const T neg_inf = T(FPBits::inf(Sign::NEG)); \
EXPECT_STREQ(LIBC_NAMESPACE::str(negnum).c_str(),
"0xBF900000 = (S: 1, E: 0x007F, M: 0x00100000)");
- FloatBits quiet_nan = FloatBits::build_quiet_nan(Sign::POS, 1);
+ FloatBits quiet_nan = FloatBits::build_quiet_nan();
EXPECT_EQ(quiet_nan.is_quiet_nan(), true);
}
"(+Infinity)");
EXPECT_STREQ(LIBC_NAMESPACE::str(DoubleBits::inf(Sign::NEG)).c_str(),
"(-Infinity)");
- EXPECT_STREQ(LIBC_NAMESPACE::str(DoubleBits::build_nan(Sign::POS, 1)).c_str(),
- "(NaN)");
+ EXPECT_STREQ(LIBC_NAMESPACE::str(DoubleBits::build_nan()).c_str(), "(NaN)");
DoubleBits zero(0.0);
EXPECT_TRUE(zero.is_pos());
EXPECT_STREQ(LIBC_NAMESPACE::str(negnum).c_str(),
"0xBFF2000000000000 = (S: 1, E: 0x03FF, M: 0x0002000000000000)");
- DoubleBits quiet_nan = DoubleBits::build_quiet_nan(Sign::POS, 1);
+ DoubleBits quiet_nan = DoubleBits::build_quiet_nan();
EXPECT_EQ(quiet_nan.is_quiet_nan(), true);
}
"0x000000000000BFFF9000000000000000 = "
"(S: 1, E: 0x3FFF, I: 1, M: 0x00000000000000001000000000000000)");
- LongDoubleBits quiet_nan = LongDoubleBits::build_quiet_nan(Sign::POS, 1);
+ LongDoubleBits quiet_nan = LongDoubleBits::build_quiet_nan();
EXPECT_EQ(quiet_nan.is_quiet_nan(), true);
}
#else
"0xBFFF2000000000000000000000000000 = "
"(S: 1, E: 0x3FFF, M: 0x00002000000000000000000000000000)");
- LongDoubleBits quiet_nan = LongDoubleBits::build_quiet_nan(Sign::POS, 1);
+ LongDoubleBits quiet_nan = LongDoubleBits::build_quiet_nan();
EXPECT_EQ(quiet_nan.is_quiet_nan(), true);
#endif
}
"0xBFFF2000000000000000000000000000 = "
"(S: 1, E: 0x3FFF, M: 0x00002000000000000000000000000000)");
- Float128Bits quiet_nan = Float128Bits::build_quiet_nan(Sign::POS, 1);
+ Float128Bits quiet_nan = Float128Bits::build_quiet_nan();
EXPECT_EQ(quiet_nan.is_quiet_nan(), true);
}
#endif // LIBC_COMPILER_HAS_FLOAT128
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
void test_na_n_arg(FuncPtr func) {
EXPECT_FP_EQ(nan, func(nan, inf));
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
static constexpr StorageType MAX_NORMAL = FPBits::max_normal().uintval();
static constexpr StorageType MIN_NORMAL = FPBits::min_normal().uintval();
using FPBits = LIBC_NAMESPACE::fputil::FPBits<T>;
using Sign = LIBC_NAMESPACE::fputil::Sign;
using StorageType = typename FPBits::StorageType;
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
const T inf = T(FPBits::inf());
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero());
using Sign = LIBC_NAMESPACE::fputil::Sign;
EXPECT_EQ(FP_ILOGB0, func(T(FPBits::zero(Sign::POS))));
EXPECT_EQ(FP_ILOGB0, func(T(FPBits::zero(Sign::NEG))));
- EXPECT_EQ(FP_ILOGBNAN, func(T(FPBits::build_quiet_nan(Sign::POS, 1))));
+ EXPECT_EQ(FP_ILOGBNAN, func(T(FPBits::build_quiet_nan())));
EXPECT_EQ(INT_MAX, func(T(FPBits::inf(Sign::POS))));
EXPECT_EQ(INT_MAX, func(T(FPBits::inf(Sign::NEG))));
}
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
// A normalized mantissa to be used with tests.
static constexpr StorageType MANTISSA = NormalFloat::ONE + 0x1234;
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
const StorageType min_subnormal = FPBits::min_subnormal().uintval();
const StorageType max_subnormal = FPBits::max_subnormal().uintval();
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
static constexpr StorageType MIN_SUBNORMAL =
FPBits::min_subnormal().uintval();
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
static constexpr StorageType MIN_SUBNORMAL =
FPBits::min_subnormal().uintval();
const F neg_zero = F(FPBits::zero(Sign::NEG));
const F inf = F(FPBits::inf());
const F neg_inf = F(FPBits::inf(Sign::NEG));
- const F nan = F(FPBits::build_quiet_nan(Sign::POS, 1));
+ const F nan = F(FPBits::build_quiet_nan());
static constexpr StorageType MAX_NORMAL = FPBits::max_normal().uintval();
static constexpr StorageType MIN_NORMAL = FPBits::min_normal().uintval();
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
void test_na_n_arg(FuncPtr func) {
EXPECT_FP_EQ(nan, func(nan, inf));
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
public:
void test_special_numbers(Func func) {
using FPBits = LIBC_NAMESPACE::fputil::FPBits<T>;
using StorageType = typename FPBits::StorageType;
using Sign = LIBC_NAMESPACE::fputil::Sign;
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
const T inf = T(FPBits::inf(Sign::POS));
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
using Sign = LIBC_NAMESPACE::fputil::Sign;
EXPECT_EQ(FP_ILOGB0, func(T(FPBits::zero(Sign::POS))));
EXPECT_EQ(FP_ILOGB0, func(T(FPBits::zero(Sign::NEG))));
- EXPECT_EQ(FP_ILOGBNAN, func(T(FPBits::build_quiet_nan(Sign::POS, 1))));
+ EXPECT_EQ(FP_ILOGBNAN, func(T(FPBits::build_quiet_nan())));
EXPECT_EQ(INT_MAX, func(T(FPBits::inf(Sign::POS))));
EXPECT_EQ(INT_MAX, func(T(FPBits::inf(Sign::NEG))));
}
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
// A normalized mantissa to be used with tests.
static constexpr StorageType MANTISSA = NormalFloat::ONE + 0x1234;
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
static constexpr StorageType min_subnormal =
FPBits::min_subnormal().uintval();
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
const long double to_zero = ToFPBits::zero().get_val();
const long double to_neg_zero = ToFPBits::zero(Sign::NEG).get_val();
- const long double to_nan = ToFPBits::build_quiet_nan(Sign::POS, 1).get_val();
+ const long double to_nan = ToFPBits::build_quiet_nan().get_val();
static constexpr StorageType min_subnormal =
FPBits::min_subnormal().uintval();
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
public:
void testSpecialNumbers(RIntFunc func) {
const T neg_inf = T(FPBits::inf(Sign::NEG));
const T zero = T(FPBits::zero(Sign::POS));
const T neg_zero = T(FPBits::zero(Sign::NEG));
- const T nan = T(FPBits::build_quiet_nan(Sign::POS, 1));
+ const T nan = T(FPBits::build_quiet_nan());
public:
typedef T (*RemQuoFunc)(T, T, int *);
const F neg_zero = F(FPBits::zero(Sign::NEG));
const F inf = F(FPBits::inf(Sign::POS));
const F neg_inf = F(FPBits::inf(Sign::NEG));
- const F nan = F(FPBits::build_quiet_nan(Sign::POS, 1));
+ const F nan = F(FPBits::build_quiet_nan());
static constexpr StorageType MAX_SUBNORMAL =
FPBits::max_subnormal().uintval();