マニュアルページ 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) を参照してください。