マニュアルページ cplx.intro.3
名前
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
は、数学複素数の代表的な直角座標系を使用します。このクラスに
は次の関数が含まれます。
o 極座標と直角座標との間の変換を行う関数。 cartpol(3C++) を
参照。
o 多重定義版の算術演算関数。これらのいくつかは、実数演算と複
素 数 演 算 と を 組み合わせて行うために最適化されています。
cplxops(3C++) を参照。
o 通常の三角関数の多重定義版。 cplxtrig(3C++) を参照。
o 通常の指数関数および対数関数の多重定義 版。 cplxexp(3C++)
を参照。
o ユーザーにより変更が可能なエラー処理関 数。 cplxerr(3C++)
を参照。
o 入出力ストリームを介して複素数の読み書 き を 行 う 関 数。
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) を参照してください。