exp , expf , expl , expd32, expd64和 expd128 子例程

用途

计算指数函数,对数函数和幂函数。

IEEE 数学库 (libm.a) 或 System V 数学库 (libmsaa.a)

语法

#include <math.h>
double exp ( x)
double x;
float expf (x)
float x;
long double expl (x)
long double x;
_Decimal32 expd32 (x)
_Decimal32 x;
_Decimal64 expd64 (x)
_Decimal64 x;

_Decimal128 expd128 (x)
_Decimal128 x;

描述

这些子例程用于计算指数函数,对数函数和幂函数。

埃克斯普国际驱逐expd32expd64expd128 子例程将返回exp (x).

希望检查错误情况的应用程序应该将 错误号 全局变量设置为零,并在调用这些子例程之前调用 费克莱雷克斯普(FE_ALL_EXCEPT)。 返回时,如果 错误号 为非零或 费泰斯特西普(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 为非零,那么表示发生了错误。

参数

描述
X 指定部分双精度浮点值。
y 指定部分双精度浮点值。

返回值

在成功完成后, 埃克斯普国际驱逐expd32expd64expd128 子例程将返回 X的指数值。

如果正确的值将导致溢出,那么将发生范围错误,并且 埃克斯普国际驱逐expd32expd64expd128 子例程分别返回宏 HUGE_VALHUGE_VALFHUGE_VALLHUGE_VAL_D32HUGE_VAL_D64HUGE_VAL_D128 的值。

如果正确的值将导致下流,并且不可表示,那么可能会发生范围错误,并返回 0.0 (如果受支持) 或实现定义的值。

如果x为NaN,返回NaN。

如果 X 为 ± 0 ,那么返回 1。

如果 X 为 -Inf ,那么返回 + 0。

如果 X 为 + Inf ,那么将返回 X

如果正确的值会导致下溢,并且可表示,那么可能会发生范围错误,并且会返回正确的值。

错误代码

使用 libm.a 库时:

描述
EXP 如果正确的值会溢出,那么 埃克斯普 子例程将返回 HUGE_VAL 值,并且 错误号 全局变量将设置为 ERANGE 值。

使用 libmsaa.a(-lmsaa) 时:

描述
EXP 如果正确的值将溢出,那么 埃克斯普 子例程将返回 HUGE_VAL 值。 如果正确的值将下溢,那么 埃克斯普 子例程 0 返回 0。 在这两种情况下, 错误号 都设置为 ERANGE
驱逐 如果正确的值将溢出,那么 驱逐 子例程将返回 HUGE_VAL 值。 如果正确的值将下溢,那么 驱逐 子例程 0 返回 0。 在这两种情况下, 错误号 都设置为 ERANGE
驱逐 如果正确的值溢出,那么 驱逐 子例程将返回 HUGE_VAL 值,并且 错误号 设置为 ERANGE

当使用 libmsaa.a 库时,可以使用 matherr 子例程来更改这些错误处理过程。