Rogue Wave バナー
前へマニュアルの先頭へ目次索引次へ

20.2 複素数の作成と使用

以降の節では、複素数の作成と操作に使用される演算について説明します。

20.2.1 複素数の宣言

テンプレート引数は、実数フィールドと虚数フィールドに関連する型定義に使用されます。この引数は、C++ 言語で使用可能な浮動小数点数データ型である floatdoublelong double のいずれかである必要があります。

このクラスに関連するいくつかのコンストラクタがあります。引数のないコンストラクタは、実数フィールドと虚数フィールドの両方をゼロに初期化します。単一引数を取るコンストラクタは、実数フィールドを特定の値に、虚数フィールドをゼロに初期化します。2 つの引数を取るコンストラクタは、実数フィールドと虚数フィールドの両方を初期化します。コピーコンストラクタを使用すると、複素数を別の複素数から派生した値で初期化することができます。

複素数には、別の複素数の値を代入することができます。単一引数を取るコンストラクタは変換演算子にも使用できるため、複素数には実数値を代入することもできます。実数フィールドは右辺に変更され、虚数フィールドはゼロに設定されます。

関数 polar() を使用して、一定の量と位相角を使用して複素数を作成することができます。

共役複素数は、関数 conj() を使用して作成されます。複素数が x + iy を表す場合、共役複素数は値 x - iy を表します。

20.2.2 複素数値へのアクセス

メンバー関数 real() および imag() は、それぞれ複素数の実数フィールドと虚数フィールドを返します。これらの関数は、複素数の引数を取る通常の関数としても呼び出すことができます。


注 : メンバー関数 real()imag() を例外として、複素数のほとんどの演算は、メンバー関数ではなく通常の関数を使用して実行されます。

20.2.3 算術演算

算術演算子 +-*/ を使用して、複素数の加算、減算、乗算、除算を実行することができます。4 つの演算子はすべて、2 つの複素数、および複素数と実数値に適用することができます。また、この 4 つすべてに代入演算子を定義することもできます。

単項演算子 +- は複素数に適用することもできます。

20.2.4 複素数値の比較

演算子 ==!= を使用して、2 つの複素数の等価または不等価を比較することができます。対応するフィールドが等しければ、2 つの値は等価です。複素数は適切に順序付けされないため、他の関係演算子を使用して比較することはできません。

20.2.5 入出力ストリーム

通常のストリーム I/O 規約を使用して、複素数を出力ストリームに書き込んだり、入力ストリームから読み取ることができます。値は、虚数値がゼロかどうかによって、(u)(u,v) のように括弧の中に書き込まれます。値は、2 つの数値を囲む 1 対の括弧として読み取られます。

20.2.6 ノルムと絶対値

関数 norm() は、複素数のノルムを返します。これは、実数部と虚数部の平方の合計です。関数 abs() は、ノルムの平方根である絶対値を返します。複素数値を引数に使用するのはいすれも通常の関数であり、メンバー関数ではないことに注意してください。

複素数の有向位相角は、関数 arg() によって算出されます。

20.2.7 三角関数

浮動小数点値に定義された三角関数は、すべて引数に複素数を使用できるように拡張されました。これらの関数は sin()cos()tan()sinh()cosh()tanh() です。それぞれ単一の複素数を引数として使用し、結果として複素数を返します。

20.2.8 超越関数

超越関数 exp()log()log10()sqrt() は、引数に複素数を使用できるように拡張されました。それぞれ単一の複素数を引数として使用し、結果として複素数を返します。

標準 C++ ライブラリでは、指数関数 pow() のバリエーションをいくつか定義しています。 複素数を整数でべき乗するもの、複素数を複素数や実数でべき乗するもの、実数値を複素数でべき乗するものなどがあります。


前へマニュアルの先頭へ目次索引次へ
Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。
OEM リリース, 1998 年 6 月