Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
6f64505d
T
Third Party Musl
项目概览
OpenHarmony
/
Third Party Musl
大约 1 年 前同步成功
通知
37
Star
125
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Musl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6f64505d
编写于
11月 12, 2012
作者:
S
Szabolcs Nagy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
math: fix exception behaviour of expm1l.c on inf and nan
上级
b03c19a4
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
7 addition
and
13 deletion
+7
-13
src/math/expm1l.c
src/math/expm1l.c
+7
-13
未找到文件。
src/math/expm1l.c
浏览文件 @
6f64505d
...
@@ -44,13 +44,7 @@
...
@@ -44,13 +44,7 @@
*
*
* Relative error:
* Relative error:
* arithmetic domain # trials peak rms
* arithmetic domain # trials peak rms
* IEEE -45,+MAXLOG 200,000 1.2e-19 2.5e-20
* IEEE -45,+maxarg 200,000 1.2e-19 2.5e-20
*
* ERROR MESSAGES:
*
* message condition value returned
* expm1l overflow x > MAXLOG MAXNUM
*
*/
*/
#include "libm.h"
#include "libm.h"
...
@@ -61,7 +55,6 @@ long double expm1l(long double x)
...
@@ -61,7 +55,6 @@ long double expm1l(long double x)
return
expm1
(
x
);
return
expm1
(
x
);
}
}
#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
static
const
long
double
MAXLOGL
=
1.1356523406294143949492E4L
;
/* exp(x) - 1 = x + 0.5 x^2 + x^3 P(x)/Q(x)
/* exp(x) - 1 = x + 0.5 x^2 + x^3 P(x)/Q(x)
-.5 ln 2 < x < .5 ln 2
-.5 ln 2 < x < .5 ln 2
...
@@ -83,19 +76,20 @@ C1 = 6.93145751953125E-1L,
...
@@ -83,19 +76,20 @@ C1 = 6.93145751953125E-1L,
C2
=
1.428606820309417232121458176568075500134E-6L
,
C2
=
1.428606820309417232121458176568075500134E-6L
,
/* ln 2^-65 */
/* ln 2^-65 */
minarg
=
-
4.5054566736396445112120088E1L
,
minarg
=
-
4.5054566736396445112120088E1L
,
huge
=
0x1
p10000L
;
/* ln 2^16384 */
maxarg
=
1.1356523406294143949492E4L
;
long
double
expm1l
(
long
double
x
)
long
double
expm1l
(
long
double
x
)
{
{
long
double
px
,
qx
,
xx
;
long
double
px
,
qx
,
xx
;
int
k
;
int
k
;
/* Overflow. */
if
(
isnan
(
x
))
if
(
x
>
MAXLOGL
)
return
x
;
return
huge
*
huge
;
/* overflow */
if
(
x
>
maxarg
)
return
x
*
0x1
p16383L
;
/* overflow, unless x==inf */
if
(
x
==
0
.
0
)
if
(
x
==
0
.
0
)
return
x
;
return
x
;
/* Minimum value.*/
if
(
x
<
minarg
)
if
(
x
<
minarg
)
return
-
1
.
0
;
return
-
1
.
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录