Powf , Powl , pow , powd32, powd64和 powd128 子例程
用途
计算功率。
语法
描述
Powf, Powl, pow, powd32, powd64和 powd128 子例程计算 x 的值的幂为 y, x y。 如果 x 为负数,那么应用程序将确保 y 为整数值。
希望检查错误情况的应用程序应将 errno 设置为零,并在调用这些子例程之前调用 feclearexcept(FE_ALL_EXCEPT)。 返回时,如果 errno 为非零或 fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 为非零,那么发生了错误。
参数
| 项 | 描述 |
|---|---|
| X | 指定基数的值。 |
| y | 指定指数的值。 |
返回值
成功完成后, pow, Powf, Powl, powd32, powd64和 powd128 子例程将返回 x 的值 (以 y为幂)。
For finite values of X < 0, and finite non-integer values of 伊, a domain error occurs and a NaN is returned.
如果正确的值将导致溢出,那么将发生范围错误,并且 pow, Powf, Powl, powd32, powd64和 powd128 子例程将返回 HUGE_VAL, HUGE_VALF, HUGE_VALL, HUGE_VAL_D32, HUGE_VAL_D64, 和 HUGE_VAL_D128 。
如果正确的值将导致下溢,并且不可表示,那么可能会发生范围错误,并返回 0.0 。
如果 x 或 y 是 NaN, ,则返回 NaN (除非本说明中另有说明)。
对于 y 的任何值 (包括 NaN) ,如果 x 为 + 1 ,那么将返回 1.0 。
对于 x (包括 NaN) 的任何值,如果 y 为 ± 0 ,那么将返回 1.0 。
对于任何奇数值 y> 0 ,如果 x 为 ± 0 ,那么将返回 ± 0。
对于 y > 0 而不是奇数,如果 x 为 ± 0 ,那么将返回 + 0。
如果 x 是 -1 , y 是 ±Inf,则返回 1.0。
For |X<1, if 伊 is -Inf, +Inf is returned.
对于 |x> 1 ,如果 y 为 -Inf ,那么将返回 + 0。
For |X<1, if 伊 is +Inf, +0 is returned.
对于 |x> 1 ,如果 y 为 + Inf ,那么将返回 + Inf。
对于 y 为奇数整数 < 0,如果 x 为 -Inf,则返回 -0。
For 伊 < 0 and not an odd integer, if X is -Inf, +0 is returned.
对于 y 整数> 0 ,如果 x 为 -Inf ,那么将返回 -Inf。
对于 y > 0 而不是奇数,如果 x 为 -Inf ,那么将返回 + Inf。
For 伊 <0, if X is +Inf, +0 is returned.
对于 y > 0 ,如果 x 为 + Inf ,那么将返回 + Inf。
For 伊 an odd integer < 0, if X is ±0, a pole error occurs and ±HUGE_VAL, ±HUGE_VALF, ±HUGE_VALL, ±HUGE_VAL_D32, ±HUGE_VAL_D64, and ±HUGE_VAL_D128 is returned for 波夫, 波夫, 波布尔, powd32, powd64, and powd128 respectively.
For 伊 < 0 and not an odd integer, if X is ±0, a pole error occurs and HUGE_VAL, HUGE_VALF, HUGE_VALL, HUGE_VAL_D32, HUGE_VAL_D64, and HUGE_VAL_D128 is returned for 波夫, 波夫, 波布尔, powd32, powd64, and powd128 respectively.
如果正确的值将导致下流,并且可表示,那么可能会发生范围错误并返回正确的值。
错误代码
使用 libm.a 库时:
| 项 | 描述 |
|---|---|
| pow | 如果正确的值溢出,那么 pow子例程返回 HUGE_VAL 值并将 errno 设置为 ERANGE。 如果 x 参数为负数且 y 参数不是整数,那么 pow 子例程返回 NaNQ 值并将 errno 设置为 EDOM。 如果x=0并且 y 参数为负数, pow 子例程返回 HUGE_VAL 值,但不修改 errno。 |
| 粉状 (Powl) | 如果正确的值溢出,那么 Powl子例程返回 HUGE_VAL 值并将 errno 设置为 ERANGE。 如果 x 参数为负数且 y 参数不是整数,那么 Powl 子例程返回 NaNQ 值并将 errno 设置为 EDOM。 如果x=0并且 y 参数为负数, Powl 子例程返回 HUGE_VAL 值,但不修改 errno 。 |
使用 libmsaa.a(-lmsaa) 时:
| 项 | 描述 |
|---|---|
| pow | 如果x=0并且 y 参数不是正数,或者如果 x 参数是负数且 y 参数不是整数,那么 pow 子例程将返回 0 并将 errno 设置为 EDOM。 在这些情况下,会将指示 DOMAIN 错误的消息输出到标准错误。 当 pow 子例程的正确值将溢出或下溢时, pow 子例程返回:使用 libm.a 库或 libsaa.a 库时: |
| 粉状 (Powl) | 如果正确的值溢出,那么 Powl 会将 HUGE_VAL 和 errno 返回到 ERANGE。 如果 x 为负数且 y 不是整数,那么 Powl 将返回 NaNQ 并将 errno 设置为 EDOM。 如果 x = 零且 y 为负数,那么 Powl 会返回 HUGE_VAL 值,但不会修改 errno。 |