提交 4f8acf95 编写于 作者: S Szabolcs Nagy 提交者: Rich Felker

math: add double precision error handling functions

上级 9ef6ca42
...@@ -222,5 +222,10 @@ hidden float __math_uflowf(uint32_t); ...@@ -222,5 +222,10 @@ hidden float __math_uflowf(uint32_t);
hidden float __math_oflowf(uint32_t); hidden float __math_oflowf(uint32_t);
hidden float __math_divzerof(uint32_t); hidden float __math_divzerof(uint32_t);
hidden float __math_invalidf(float); hidden float __math_invalidf(float);
hidden double __math_xflow(uint32_t, double);
hidden double __math_uflow(uint32_t);
hidden double __math_oflow(uint32_t);
hidden double __math_divzero(uint32_t);
hidden double __math_invalid(double);
#endif #endif
#include "libm.h"
double __math_divzero(uint32_t sign)
{
return fp_barrier(sign ? -1.0 : 1.0) / 0.0;
}
#include "libm.h"
double __math_invalid(double x)
{
return (x - x) / (x - x);
}
#include "libm.h"
double __math_oflow(uint32_t sign)
{
return __math_xflow(sign, 0x1p769);
}
#include "libm.h"
double __math_uflow(uint32_t sign)
{
return __math_xflow(sign, 0x1p-767);
}
#include "libm.h"
double __math_xflow(uint32_t sign, double y)
{
return eval_as_double(fp_barrier(sign ? -y : y) * y);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册