计算x的y次幂,其中x≥0。
C interface:
float powrf(float x, float y);
double powr(double x, double y);
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
x |
|
表示输入数据的浮点值。 |
输入 |
y |
|
表示输入数据的浮点值。 |
输入 |
输入值(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 */