复数 (complex, complexf)

内置 complex 类型是一个包含两个 double 字段的结构:

struct complex
  {
   double             real;   // 实部
   double             imag;   // 虚部
  };

内置 complexf 类型是一个包含两个 float 字段的结构:

struct complexf
  {
   float              real;   // 实部
   float              imag;   // 虚部
  };

 

complex 和 complexf 类型可以按值作为 MQL5 函数的参数传递(与只能按引用传递的普通结构不同)。对于从 DLL 导入的函数,complex 和 complexf 类型只能按引用传递。

后缀 'i' 用于描述复数常量:

complex square(complex c)
  {
   return(c*c);
  }  
void OnStart()
  {
   Print(square(1+2i));  // 常量作为参数传递
  }
// 将输出 "(-3,4)",它是复数的字符串表示 

目前复数只支持简单运算:=、+、-、*、/、+=、-=、*=、/=、==、!=。

以后将添加对其他数学函数的支持,以便计算绝对值、正弦、余弦等。

vectorc

complex 类型数字的一维数组用于处理复数。可以在模板函数中使用 vector<complex> 写法。

matrixc

complex 类型数字的二维数组用于处理复数。可以在模板函数中使用 matrix<complex> 写法。

vectorcf

complexf 类型数字的一维数组用于处理复数。可以在模板函数中使用 vector<complexf> 写法。

matrixcf

complexf 类型数字的二维数组用于处理复数。可以在模板函数中使用 matrix<complexf> 写法。