複素数(complex)

組み込みのcomplexタイプは、2つのdoubleフィールドを持つ構造体です。

struct complex
 {
  double             real;   // 実数部分
  double             imag;   // 虚数部分
 };

「complex」型は、MQL5関数のパラメータとして値で渡すことができます(通常の構造体が参照によってのみ渡されるのとは対照的です)。DLLからインポートされた関数の場合、「complex」型は参照によってのみ渡されます。

「i」接尾辞はcomplex定数を説明するために使用されます。

complex square(complex c)
 {
  return(c*c);
 }
 
void OnStart()
 {
  Print(square(1+2i)); // 定数がパラメータとして渡される
 }
// 複素数の文字列表現である「(-3,4)」が出力される

現在、複素数には単純な演算(=, +, -, *, /, +=, -=, *=, /=, ==,!=)のみが使用できます。

追加の数学関数のサポートは後で追加され、絶対値、正弦、余弦などの計算が可能になります。