Комплексное число (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>.