Skip to content

Commit 0897d46

Browse files
committed
temporary
1 parent 3598ee7 commit 0897d46

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

libc/src/math/generic/atanpif16.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -117,20 +117,20 @@ LLVM_LIBC_FUNCTION(float16, atanpif16, (float16 x)) {
117117
if (LIBC_UNLIKELY(xbits.is_zero()))
118118
return x;
119119

120-
if (LIBC_UNLIKELY(xbits.uintval() == 0x0a48 || xbits.uintval() == 0x8a48)) {
120+
if (LIBC_UNLIKELY(xbits.abs().uintval() == 0x0a48)) {
121121
int rounding = fputil::quick_get_round();
122-
123-
if (rounding == FE_UPWARD && xbits.uintval() == 0x0a48)
124-
return fputil::FPBits<float16>(uint16_t(0x0400)).get_val();
125-
126-
if (rounding == FE_DOWNWARD && xbits.uintval() == 0x8a48)
127-
return fputil::FPBits<float16>(uint16_t(0x8400)).get_val();
122+
if (!is_neg) {
123+
if (rounding == FE_UPWARD)
124+
return fputil::cast<float16>(0x1p-14f);
125+
return fputil::cast<float16>(0x1.ffd7ap-15f);
126+
} else {
127+
if (rounding == FE_DOWNWARD)
128+
return fputil::cast<float16>(-0x1p-14f);
129+
return fputil::cast<float16>(-0x1.ffd7ap-15f);
130+
}
128131
}
129-
130132
double result = atanpi_eval(x_abs);
131133
float16 s_result = signed_result(result);
132-
if (FPBits(s_result).is_subnormal())
133-
fputil::raise_except_if_required(FE_UNDERFLOW);
134134
return s_result;
135135
}
136136

0 commit comments

Comments
 (0)