csqrtf, csqrt, csqrtl

来自cppreference.com
< c‎ | numeric‎ | complex
 
 
 
复数算术
类型与虚数常量
(C99)
(C11)
(C99)
操作
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
幂与指数函数
(C99)
(C99)
(C99)
csqrt
(C99)
三角函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
双曲函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
 
定义于头文件 <complex.h>
float complex       csqrtf( float complex z );
(1) (C99 起)
double complex      csqrt( double complex z );
(2) (C99 起)
long double complex csqrtl( long double complex z );
(3) (C99 起)
定义于头文件 <tgmath.h>
#define sqrt( z )
(4) (C99 起)
1-3) 计算 z 的复平方根,分支切割沿负实轴。
4) 泛型宏:若 z 拥有 long double complex 类型,则调用 csqrtl 。若 z 拥有 double complex 类型,则调用 csqrt ,若 z 拥有 float complex 类型,则调用 csqrtf 。若 z 为实数或整数,则宏调用对应的实数函数( sqrtfsqrtsqrtl )。若 z 为虚数,则调用对应的复数版本。

参数

z - 复参数

返回值

若不出现错误,则返回 z 的平方根,在包含虚轴的右半平面中(沿实轴为 [0; +∞) ,而沿虚轴为 (−∞; +∞) )。

错误处理及特殊值

报告的错误与 math_errhandling 一致。

若实现支持 IEEE 浮点算术,则

  • 考虑虚部符号,函数连续到分支切割上。
  • csqrt(conj(z)) == conj(csqrt(z))
  • z±0+0i ,则结果为 +0+0i
  • zx+∞i ,则结果为 +∞+∞i ,即使 x 为 NaN
  • zx+NaNi ,则结果为 NaN+NaNi (除非 x 为 ±∞ )并可能引发 FE_INVALID
  • z-∞+yi ,则对于有限正 y 结果为 +0+∞i
  • z+∞+yi ,则对于有限正 y 结果为 +∞+0i)
  • z-∞+NaNi ,则结果为 NaN±∞i (虚部符号未指定)
  • z+∞+NaNi ,则结果为 +∞+NaNi
  • zNaN+yi ,则结果为 NaN+NaNi 并可能引发 FE_INVALID
  • zNaN+NaNi ,则结果为 NaN+NaNi

示例

#include <stdio.h>
#include <complex.h>
 
int main(void)
{
    double complex z1 = csqrt(-4);
    printf("Square root of -4 is %.1f%+.1fi\n", creal(z1), cimag(z1));
 
    double complex z2 = csqrt(conj(-4)); // 或 C11 中的 CMPLX(-4, -0.0)
    printf("Square root of -4-0i, the other side of the cut, is "
           "%.1f%+.1fi\n", creal(z2), cimag(z2));
}

输出:

Square root of -4 is 0.0+2.0i
Square root of -4-0i, the other side of the cut, is 0.0-2.0i

引用

  • C11 标准(ISO/IEC 9899:2011):
  • 7.3.8.3 The csqrt functions (p: 196)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.6.4.2 The csqrt functions (p: 544)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.3.8.3 The csqrt functions (p: 178)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.6.4.2 The csqrt functions (p: 479)
  • G.7 Type-generic math <tgmath.h> (p: 480)

参阅

(C99)(C99)(C99)
计算复数幂函数
(函数)
(C99)(C99)
计算平方根( x
(函数)