CPLX.INTRO(3C++)

名前
cplx.intro - complex - C++ 複素数数学ライブラリについて

形式

#include <complex.h>

class complex {
public:
	complex(double real, double imag= 0.0);
	complex();
	... // 以下省略
};
#include <iostream.h>

ostream& operator<< (ostream&, const complex&);
istream& operator>> (istream&, complex&);

機能説明

この複素数クラスおよびライブラリは、 USL が提供する複素数数学ライブラリに基づいています。 したがって、 USL のライブラリを使用することを前提にしてコーディングされたプログラムは、 このライブラリを使用しても同じように機能するはずです。

ヘッダファイル <complex.h> で定義されている クラス complex は、数学複素数の代表的な直角座標系を 使用します。 このクラスには次の関数が含まれます。
• 極座標と直角座標との間の変換を行う関数。 cartpol(3C++) を参照。
• 多重定義版の算術演算関数。 これらのいくつかは、実数演算と複素数演算とを組み合わせて行うために 最適化されています。 cplxops(3C++) を参照。
• 通常の三角関数の多重定義版。 cplxtrig(3C++) を参照。
• 通常の指数関数および対数関数の多重定義版。 cplxexp(3C++) を参照。
• ユーザーにより変更が可能なエラー処理関数。 cplxerr(3C++) を参照。
• 入出力ストリームを介して複素数の読み書きを行う関数。 ios.intro(3C++) を参照。

  コンストラクタ

complex()
    (0.0, 0.0) に初期化された複素数を作成します。

complex(x, y)
    ( x, y ) に初期化された複素数を作成します。 ここで、 x と y は数値型です。 引数 y は省略できますが、その場合 y の値は 0 と見なされます。

  入出力

このライブラリには、複素数用のデフォルトの入力ルーチンと 出力ルーチンが用意されています。 これらのルーチンの一方または両方は、 同じ認別記号を使用してコーディングすることで 別の関数に置き換えることができます。 デフォルトのルーチンは次のとおりです。

input_stream >> x
    次の形式で表された複素数を想定します。
    ( real , imag )
    ここで、 real (実部) および imag (虚部) は、 標準の C++ 形式の整数または浮動小数点数です。括弧および コンマの前後には任意の数の空白類を置くことができます。 最初に検出された非空白類文字が ( でないとき、 その文字はストリームに戻され、それ以上の抽出は行われません。 それ以外の場合、値の形式が正しくないと判断されれば、 ストリームからの抽出はその時点で停止し、 ストリームは ``failed'' 状態に置かれます (入出力ストリームの ドキュメントを参照)。 どちらの場合でも、また他にエラー状態がなければ、 複素数変数 x の値は (0,0) となります。 入力の書式が適切な場合、 x の値は指定されたとおりの複素数値になります。

output_stream << x
    複素数 x の値を、 上記の入力関数が想定する書式で出力ストリームに書き込みます。

関連項目

cartpol(3C++)、 cplxerr(3C++)、 cplxexp(3C++)、 cplxops(3C++)、 cplxtrig(3C++)、 ios.intro(3C++)、 intro(2)、 ieee_values(3)、 perror(3)

診断
一般に、結果の値が大きすぎたり、数学的に未定義であったりすると、 (0, 0)、(0, ± HUGE_VAL )、(± HUGE_VAL , 0)、 (± HUGE_VAL , ± HUGE_VAL ) のいずれかの値が返されます。 定数 HUGE_VAL は、 <complex.h> によって取り込まれるヘッダ <math.h> で 定義されています。 この実装では、無限大に対応する値になります。 ieee_values(3M) を参照してください。 そのようなエラー状態が発生すると、 外部変数 errno が EDOM または ERANGE に設定されます。 perror(3C)および intro(2) を参照してください。