clog2
计算复数以2为底数的对数值。
接口定义
C interface:
float complex clog2f(float complex x);
double complex clog2(double complex x);
参数
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
x |
|
表示输入数据的浮点值。 |
输入 |
返回值
- 返回x的以2为底的对数值结果y。
- 特殊值说明如下所示。
输入值实部(x.real)
输入值虚部(x.imag)
输出值实部(y.real)
输出值虚部(y.imag)
+0
+0
-inf
+0
+0
-0
-inf
-0
+0
inf
inf
0x40022123045b5dec(pi/2ln2)
+0
-inf
inf
0xc0022123045b5dec(-pi/2ln2)
+0
snan
nan
nan
+0
-snan
nan
nan
+0
qnan
nan
nan
+0
-qnan
nan
nan
-0
+0
-inf
0x40122123045b5dec(pi/ln2)
-0
-0
-inf
0xc0122123045b5dec(-pi/ln2)
-0
inf
inf
0x40022123045b5dec(pi/2ln2)
-0
-inf
inf
0xc0022123045b5dec(-pi/2ln2)
-0
snan
nan
nan
-0
-snan
nan
nan
-0
qnan
nan
nan
-0
-qnan
nan
nan
inf
+0
inf
+0
inf
-0
inf
-0
inf
inf
inf
0x3ff22123045b5dec(pi/4ln2)
inf
-inf
inf
0xbff22123045b5dec(-pi/4ln2)
inf
snan
inf
nan
inf
-snan
inf
nan
inf
qnan
inf
nan
inf
-qnan
inf
nan
-inf
+0
inf
0x40122123045b5dec(pi/ln2)
-inf
-0
inf
0xc0122123045b5dec(-pi/ln2)
-inf
inf
inf
0x400b31b486890ce1(3*pi/4ln2)
-inf
-inf
inf
0xc00b31b486890ce1(-3*pi/4ln2)
-inf
snan
inf
nan
-inf
-snan
inf
nan
-inf
qnan
inf
nan
-inf
-qnan
inf
nan
snan
+0
nan
nan
snan
-0
nan
nan
snan
inf
inf
nan
snan
-inf
inf
nan
snan
snan
nan
nan
snan
-snan
nan
nan
snan
qnan
nan
nan
snan
-qnan
nan
nan
-snan
+0
nan
nan
-snan
-0
nan
nan
-snan
inf
inf
nan
-snan
-inf
inf
nan
-snan
snan
nan
nan
-snan
-snan
nan
nan
-snan
qnan
nan
nan
-snan
-qnan
nan
nan
qnan
+0
nan
nan
qnan
-0
nan
nan
qnan
inf
inf
nan
qnan
-inf
inf
nan
qnan
snan
nan
nan
qnan
-snan
nan
nan
qnan
qnan
nan
nan
qnan
-qnan
nan
nan
-qnan
+0
nan
nan
-qnan
-0
nan
nan
-qnan
inf
inf
nan
-qnan
-inf
inf
nan
-qnan
snan
nan
nan
-qnan
-snan
nan
nan
-qnan
qnan
nan
nan
-qnan
-qnan
nan
nan
依赖
C: "kc.h"
示例
// typical usage double x1 = INFINITY, y1 = INFINITY; double x2 = 2.0, y2 = 3.0; double x3 = -2.5, y3 = -3.4; double x4 = NAN, y4 = NAN; double x5 = 0, y5 = 0; double complex z1 = clog2(__builtin_complex(x1, y1)); double complex z2 = clog2(__builtin_complex(x2, y2)); double complex z3 = clog2(__builtin_complex(x3, y3)); double complex z4 = clog2(__builtin_complex(x4, y4)); double complex z5 = clog2(__builtin_complex(x5, y5)); // print result printf("/*\n"); printf(" * clog2(%.2f + %.2f*I) = %.6f + %.6f*I\n", x1, y1, __real__(z1), __imag__(z1)); printf(" * clog2(%.2f + %.2f*I) = %.6f + %.6f*I\n", x2, y2, __real__(z2), __imag__(z2)); printf(" * clog2(%.2f + %.2f*I) = %.6f + %.6f*I\n", x3, y3, __real__(z3), __imag__(z3)); printf(" * clog2(%.2f + %.2f*I) = %.6f + %.6f*I\n", x4, y4, __real__(z4), __imag__(z4)); printf(" * clog2(%.2f + %.2f*I) = %.6f + %.6f*I\n", x5, y5, __real__(z5), __imag__(z5)); printf(" **/\n"); /* * clog2(inf + inf*I) = inf + 1.133090*I * clog2(2.00 + 3.00*I) = 1.850220 + 1.417872*I * clog2(-2.50 + -3.40*I) = 2.077308 + -3.180882*I * clog2(nan + nan*I) = nan + nan*I * clog2(0.00 + 0.00*I) = -inf + 0.000000*I **/