powr
计算x的y次幂,其中x≥0。
接口定义
C interface:
float powrf(float x, float y);
double powr(double x, double y);
参数
参数名 |
类型 |
描述 |
输入/输出 |
|---|---|---|---|
x |
|
表示输入数据的浮点值。 |
输入 |
y |
|
表示输入数据的浮点值。 |
输入 |
返回值
- x大于等于0且y为正常值,返回幂指数的结果,取值范围(0, +INF)。
- x小于0,返回nan。
- 其他特殊值组合如下所示。
输入值(x)
输入值(y)
输出值(result)
+0
+0
+1
+0
-0
+1
+0
inf
+0
+0
-inf
inf
+0
snan
nan
+0
-snan
nan
+0
qnan
nan
+0
-qnan
nan
-0
+0
+1
-0
-0
+1
-0
inf
+0
-0
-inf
inf
-0
snan
nan
-0
-snan
nan
-0
qnan
nan
-0
-qnan
nan
inf
+0
+1
inf
-0
+1
inf
inf
inf
inf
-inf
+0
inf
snan
nan
inf
-snan
nan
inf
qnan
nan
inf
-qnan
nan
-inf
+0
nan
-inf
-0
nan
-inf
inf
nan
-inf
-inf
nan
-inf
snan
nan
-inf
-snan
nan
-inf
qnan
nan
-inf
-qnan
nan
snan
+0
+1
snan
-0
+1
snan
inf
nan
snan
-inf
nan
snan
snan
nan
snan
-snan
nan
snan
qnan
nan
snan
-qnan
nan
-snan
+0
+1
-snan
-0
+1
-snan
inf
nan
-snan
-inf
nan
-snan
snan
nan
-snan
-snan
nan
-snan
qnan
nan
-snan
-qnan
nan
qnan
+0
+1
qnan
-0
+1
qnan
inf
nan
qnan
-inf
nan
qnan
snan
nan
qnan
-snan
nan
qnan
qnan
nan
qnan
-qnan
nan
-qnan
+0
+1
-qnan
-0
+1
-qnan
inf
nan
-qnan
-inf
nan
-qnan
snan
nan
-qnan
-snan
nan
-qnan
qnan
nan
-qnan
-qnan
nan
依赖
C: "km.h"
示例
C interface:
// typical usage
double x1 = 0.0, x2 = -0.0, x3 = 1.5, x4 = -2.5;
// special handing
double a = INFINITY, b = -INFINITY, c = NAN;
// print result
printf("powr(0.0, -0.0) = %.15f\n", powr(x1, x2));
printf("powr(-0.0, 0.0) = %.15f\n", powr(x2, x1));
printf("powr(1.5, 1.5) = %.15f\n", powr(x3, x3));
printf("powr(-2.5, 1.5) = %.15f\n", powr(x4, x3));
printf("powr(INFINITY, 1.5) = %.15f\n", powr(a, x3));
printf("powr(-INFINITY, 1.5) = %.15f\n", powr(b, x3));
printf("powr(NAN, NAN) = %.15f\n", powr(c, c));
return 0;
/*
* powr(0.0, -0.0) = 1.000000000000000
* powr(-0.0, 0.0) = 1.000000000000000
* powr(1.5, 1.5) = 1.837117307087384
* powr(-2.5, 1.5) = nan
* powr(INFINITY, 1.5) = inf
* powr(-INFINITY, 1.5) = nan
* powr(NAN, NAN) = nan
*/