Комплексное число (complex)

Встроенный тип complex представляет из себя структуру с двумя полями типа double:

struct complex
  {
   double             real;   // вещественная часть
   double             imag;   // мнимая часть
  };

Тип complex может передаваться по значению в качестве параметра для MQL5-функций (в отличие от обычных структур, которые передаются только по ссылке). Для функций, импортируемых из DLL, тип complex должен передаваться только по ссылке.

Для описания комплексных констант используется суффикс 'i':

complex square(complex c)
  {
   return(c*c);
  }  
void OnStart()
  {
   Print(square(1+2i));  // в качестве параметра передается константа
  }
// будет выведено "(-3,4)" - это строковое представление комплексного числа

Для комплексных чисел на данный момент доступны только простые операции: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

В дальнейшем будут добавлены дополнительные математические функции: получение абсолютного значения, синуса, косинуса и многие другие.

vectorc

Одномерный массив чисел типа complex, предназначен для работы с комплесными числами.  В шаблонных функциях можно использовать запись vector<complex>.  На данный момент операции над векторами типа vectorc еще не реализованы.

matrixc

Двумерный массив чисел типа complex, предназначен для работы с комплесными числами.  В шаблонных функциях можно использовать запись matrix<complex>.  На данный момент операции над матрицами типа matrixc еще не реализованы.