Número complejo (complex, complexf)

El tipo integrado complex es una estructura con dos campos double:

struct complex
  {
   double             real;   // parte real
   double             imag;   // parte imaginaria
  };

El tipo integrado complexf es una estructura con dos campos float:

struct complexf
  {
   float              real;   // parte real
   float              imag;   // parte imaginaria
  };

 

Los tipos complex y complexf se pueden pasar por valor como parámetros de funciones MQL5 (a diferencia de las estructuras ordinarias, que se pasan solo por referencia). Para las funciones importadas desde DLL, los tipos complex y complexf deben pasarse solo por referencia.

El sufijo 'i' se utiliza para describir constantes complejas:

complex square(complex c)
  {
   return(c*c);
  }  
void OnStart()
  {
   Print(square(1+2i));  // Se pasa una constante como parámetro
  }
// Se mostrará "(-3,4)", que es la representación como cadena del número complejo 

Actualmente solo están disponibles operaciones simples para los números complejos: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

La compatibilidad con funciones matemáticas adicionales se añadirá más adelante, permitiendo calcular el valor absoluto, seno, coseno y otras funciones.

vectorc

Un array unidimensional de números de tipo complex está destinado a trabajar con números complejos. La notación vector<complex> puede utilizarse en funciones de plantilla.

matrixc

Un array bidimensional de números de tipo complex está destinado a trabajar con números complejos. La notación matrix<complex> puede utilizarse en funciones de plantilla.

vectorcf

Un array unidimensional de números de tipo complexf está destinado a trabajar con números complejos. La notación vector<complexf> puede utilizarse en funciones de plantilla.

matrixcf

Un array bidimensional de números de tipo complexf está destinado a trabajar con números complejos. La notación matrix<complexf> puede utilizarse en funciones de plantilla.