複素数計算 (Complex)
| ヘッダ ファイル |
complex.h |
|---|---|
| 規格 | C99 |
| 概要 | 複素数計算をサポートする幾つかのマクロを定義し、幾つかの関数を宣言する。 |
See also:
プラグマ
| 名前 | 機能 | デフォルト |
|---|---|---|
| CX_LIMITED_RANGE | 複素数演算に対する数学公式の使用 | OFF |
#pragma STDC CX_LIMITED_RANGE ON は複素数演算において一般的な数学公式を利用可能であると処理系に伝えます。複素数演算で (内部的に) 数学公式が使われると、中間式において無限大・オーバーフロ・アンダーフロー発生の可能性があります。
型
マクロ
| 名前 | 機能 |
|---|---|
| complex | 予約語 _Complex のエイリアス |
| _Complex_I | 虚数の 0+1i を示す定数 (const float _Complex) |
| imaginary | 予約語 _Imaginary のエイリアス |
| _Imaginary_I | 虚部の 1i を示す定数 (const float _Imaginary) |
| I | _Imaginary_I または _Complex_I に展開される、 虚数の 0+1i を示す定数 (const float _Complex) |
引数付きマクロ
関数
| double | float | long double | 機能 |
|---|---|---|---|
| csin() | csinf() | csinl() | 複素数正弦 |
| ccos() | ccosf() | ccosl() | 複素数余弦 |
| ctan() | ctanf() | ctanl() | 複素数正接 |
| casin() | casinf() | casinl() | 複素数逆正弦 |
| cacos() | cacosf() | cacosl() | 複素数逆余弦 |
| catan() | catanf() | catanl() | 複素数逆正接 |
| csinh() | csinhf() | csinhl() | 複素数双曲線正弦 |
| ccosh() | ccoshf() | ccoshl() | 複素数双曲線余弦 |
| ctanh() | ctanhf() | ctanhl() | 複素数双曲線正接 |
| casinh() | casinhf() | casinhl() | 複素数逆双曲線正弦 |
| cacosh() | cacoshf() | cacoshl() | 複素数逆双曲線余弦 |
| catanh() | catanhf() | catanhl() | 複素数逆双曲線正接 |
| cexp() | cexpf() | cexpl() | 複素数指数 |
| clog() | clogf() | clogl() | 複素数自然対数 |
| cabs() | cabsf() | cabsl() | 複素数絶対値 |
| cpow() | cpowf() | cpowl() | 複素数累乗 |
| csqrt() | csqrtf() | csqrtl() | 複素数平方根 |
| carg() | cargf() | cargl() | 複素数偏角 |
| cimag() | cimagf() | cimagl() | 複素数虚部 |
| cconj() | cconjf() | cconjl() | 共役複素数 |
| cproj() | cprojf() | cprojl() | リーマン射影 |
| creal() | crealf() | creall() | 複素数実部 |
引数 / 戻り値の型 (double complex, float complex, long double complex) によって関数名が異なります。この煩わしさを回避するために 型総称数学関数 (tgmath.h) が用意されています。
資料
- C 言語 / 標準ライブラリ / complex.h (Wikibooks)
- z/OS C/C++ ランタイム・ライブラリー・リファレンス complex.h — 複素数学関数 (IBM)
- C 言語の標準ヘッダ一覧 complex.h (C 言語)