---
title: powr8i4
description: "计算80位可扩展精度指数函数值。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/accel/kunpengaccel_kml_16_0332.html
sourcePath: /source/zh/kunpengboostkithistory/2200/accel/kunpengaccel_kml_16_0332.html
indexId: 22cdab1748b282a36915d44d69326b31db46af8165d6b4157184f838c7e6b8d574
---
# powr8i4

计算80位可扩展精度指数函数值。

#### 接口定义

C interface：

double powr8i4(double x, int y);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| x | x是双精度浮点类型。 | 表示输入数据的浮点值。 | 输入 |
| y | y是整数类型。 | 表示输入数据的整型值。 | 输入 |


#### 返回值

- x任意，y为0，返回1.0。
- x为INF，y为正整数，返回INF。
- x为INF，y为负整数，返回0.0。
- x为-INF，y为正奇数，返回-INF。
- x为-INF，y为正偶数，返回INF。
- x为-INF，y为负奇数，返回-0.0。
- x为-INF，y为负偶数，返回0.0。
- x为NAN，y任意，返回NAN。
- x为-0.0，y为负整数，返回-INF。
- x为0.0，y为负整数，返回INF。
- x为大的有限数，y为大的整数，返回+/-INF。


#### 依赖

C: "km.h"


#### 示例

C interface：

```
// typical usage
double  x1 = 1.0, x2 = 2.0, x3 = 3.0, x4 = 4.0;
int  y1 = 4, y2 = -4, y3 = -3, y4 = 3;
// special handing
double a = INFINITY, b = -INFINITY, c = NAN, d = 0.0;
// print result
printf("pow(1.0, 4) = %.15f\n", pow(x1, y1));
printf("pow(2.0, -4) = %.15f\n", pow(x2, y2));
printf("pow(3.0, -3) = %.15f\n", pow(x3, y3));
printf("pow(4.0, 3) = %.15f\n", pow(x4, y4));
printf("pow(INFINITY, 4) = %+.15f\n", pow(a, y1));
printf("pow(INFINITY, -4) = %+.15f\n", pow(a, y2));
printf("pow(-INFINITY, -3) = %+.15f\n", pow(b, y3));
printf("pow(NAN, 3) = %+.15f\n", pow(c, y4));
printf("pow(0.0, -3) = %+.15f\n", pow(d, y3));
printf("pow(-0.0, -3) = %+.15f\n", pow(e, y3));
/*
*  pow(1.0, 4) = 1.000000000000000
*  pow(2.0, -4) = 0.062500000000000
*  pow(3.0, -3) = 0.037037037037037
*  pow(4.0, 3) = 64.000000000000000
*  pow(INFINITY, 4) = inf
*  pow(INFINITY, -4) = 0.000000000000000
*  pow(-INFINITY, -3) = -0.000000000000000
*  pow(NAN, 3) = nan
*  pow(0.0, -3) = inf
*  pow(-0.0, -3) = -inf
*
* */
```
