Namespaces
Variants

csqrtf, csqrt, csqrtl

From cppreference.net
ヘッダー <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 が実数または整数の場合、マクロは対応する実数関数( sqrtf sqrt sqrtl )を呼び出す。 z が虚数の場合、対応する複素数版が呼び出される。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - HTMLタグ、属性、
タグ内のテキストは翻訳していません
- C++固有の用語(Parameters、Return value、Error handling and special values、Example、References、See also)は原文のまま保持しています
- 書式と構造は完全に保持されています

パラメータ

z - 複素引数

戻り値

エラーが発生しない場合、右半平面(実軸に沿って [0; +∞) 、虚軸に沿って (−∞; +∞) を含む)の範囲で z の平方根を返します。

エラーハンドリングと特殊値

エラーは math_errhandling に従って報告されます

IEEE浮動小数点演算がサポートされている実装の場合、

  • この関数は虚部の符号を考慮して分岐切断線上で連続です
  • csqrt ( conj ( z ) ) == conj ( csqrt ( z ) )
  • z ±0+0i の場合、結果は +0+0i です
  • z x+∞i の場合、xがNaNであっても結果は +∞+∞i です
  • z x+NaNi の場合、結果は NaN+NaNi です(xが±∞でない限り)。また FE_INVALID が発生する可能性があります
  • z -∞+yi の場合、有限の正のyに対して結果は +0+∞i です
  • z +∞+yi の場合、有限の正のyに対して結果は +∞+0i) です
  • z -∞+NaNi の場合、結果は NaN±∞i です(虚部の符号は不定)
  • z +∞+NaNi の場合、結果は +∞+NaNi です
  • z NaN+yi の場合、結果は NaN+NaNi です。また FE_INVALID が発生する可能性があります
  • z NaN+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)); // or, in 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 csqrt関数群 (p: 196)
  • 7.25 型総称数学 <tgmath.h> (p: 373-375)
  • G.6.4.2 csqrt関数群 (p: 544)
  • G.7 型総称数学 <tgmath.h> (p: 545)
  • C99標準 (ISO/IEC 9899:1999):
  • 7.3.8.3 csqrt関数群 (p: 178)
  • 7.22 型総称数学 <tgmath.h> (p: 335-337)
  • G.6.4.2 csqrt関数群 (p: 479)
  • G.7 型総称数学 <tgmath.h> (p: 480)

関連項目

(C99) (C99) (C99)
複素数の累乗関数を計算する
(関数)
(C99) (C99)
平方根を計算する ( x )
(関数)