rsqrt 子例程
用途
计算一个数字的平方根的倒数。
库
IEEE 数学库 (libm.a)
System V 数学库 (libmsaa.a)
语法
描述
rsqrt 命令计算数字 x的平方根的倒数; 即, 1.0 除以 x 的平方根 (1.0/sqrt (x))。 在某些平台上,使用 rsqrt 子例程比计算 1.0 /sqrt (x) 更快。 rsqrt 子例程使用调用程序所使用的相同舍入方式。
使用 libm.a 库时, rsqrt 子例程通过以下方式响应 x 的特殊值:
- 如果 x 是 NaN, ,则 rsqrt 子程序返回 NaN。 如果 x 是信令 Nan (NaNS) ,那么 rsqrt 子例程返回一个安静的 NaN ,并将 FPSCR (浮点状态和控制寄存器) 中的 VX 和 VXSNAN (信令 NaN 无效操作异常) 标志设置为 1。
- 如果 x 是 +/- 0.0,那么 rsqrt 子例程将返回 +/-INF 并将 FPSCR 中的 ZX (零除异常) 标志设置为 1。
- 如果 x 为负数,则 rsqrt 子例程返回 NaN, ,将 errno 全局变量设置为 EDOM ,并将 FPSCR 中的 VX 和 VXSQRT (负数平方根无效操作异常)标志设置为 1。
使用 libmsaa.a 库时, rsqrt 子例程以下列方式响应 x 的特殊值:
- 如果 x 是 +/- 0.0,那么 rsqrt 子例程返回 +/-HUGE_VAL 并将 errno 全局变量设置为 EDOM。 子例程调用 马瑟尔 子例程,该子例程将一个指示奇异性错误的消息打印到标准错误输出。
- 如果 x 为负数,那么 rsqrt 子例程将返回 0.0 并将 errno 全局变量设置为 EDOM。 子例程调用 马瑟尔 子例程,该子例程将指示域错误的消息打印到标准错误输出。
当使用 libmsaa.a编译时,程序可以使用 matherr 子例程来更改这些错误处理过程。
参数
| 项 | 描述 |
|---|---|
| X | 指定一种双精度浮点值。 |
返回值
成功完成后, rsqrt 子例程将返回 X的平方根的倒数。
| 项 | 描述 |
|---|---|
| 1.0 | 如果 x 为 1.0。 |
| +0.0 | 如果 X 为 + INF。 |
错误代码
当使用 libm.a 或 libmsaa.a 库时, rsqrt 子例程可能会返回以下错误代码:
| 项 | 描述 |
|---|---|
| EDOM | X 的值为负数。 |