提交 65db0098 编写于 作者: N nsz

make lrint and llrint functions work without fenv support

上级 9b6899f2
#include <math.h>
/* assumes LLONG_MAX > 2^53, see comments in lrint.c */
/* uses LLONG_MAX > 2^53, see comments in lrint.c */
long long llrint(double x)
{
......
#include <math.h>
/* assumes LLONG_MAX > 2^24, see comments in lrint.c */
/* uses LLONG_MAX > 2^24, see comments in lrint.c */
long long llrintf(float x)
{
......
......@@ -8,7 +8,7 @@ long long llrintl(long double x)
{
return llrint(x);
}
#else
#elif defined(FE_INEXACT)
/*
see comments in lrint.c
......@@ -27,4 +27,9 @@ long long llrintl(long double x)
/* conversion */
return x;
}
#else
long long llrintl(long double x)
{
return rintl(x);
}
#endif
......@@ -25,7 +25,7 @@ otherwise LONG_MAX and LONG_MIN can be represented exactly
as a double.
*/
#if LONG_MAX < 1U<<53
#if LONG_MAX < 1U<<53 && defined(FE_INEXACT)
long lrint(double x)
{
int e;
......
#include <math.h>
/* assumes LONG_MAX > 2^24, see comments in lrint.c */
/* uses LONG_MAX > 2^24, see comments in lrint.c */
long lrintf(float x)
{
......
......@@ -8,7 +8,7 @@ long lrintl(long double x)
{
return lrint(x);
}
#else
#elif defined(FE_INEXACT)
/*
see comments in lrint.c
......@@ -27,4 +27,9 @@ long lrintl(long double x)
/* conversion */
return x;
}
#else
long lrintl(long double x)
{
return rintl(x);
}
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册