Komplexe Zahl (complex, complexf)

Der integrierte Typ complex ist eine Struktur mit zwei double-Feldern:

struct complex
  {
   double             real;   // Realteil
   double             imag;   // Imaginärteil
  };

Der integrierte Typ complexf ist eine Struktur mit zwei float-Feldern:

struct complexf
  {
   float              real;   // Realteil
   float              imag;   // Imaginärteil
  };

 

Die Typen complex und complexf können als Parameter für MQL5-Funktionen als Wert übergeben werden (im Gegensatz zu gewöhnlichen Strukturen, die nur per Referenz übergeben werden). Für aus DLLs importierte Funktionen müssen die Typen complex und complexf ausschließlich per Referenz übergeben werden.

Das Suffix 'i' wird zur Beschreibung komplexer Konstanten verwendet:

complex square(complex c)
  {
   return(c*c);
  }  
void OnStart()
  {
   Print(square(1+2i));  // Eine Konstante wird als Parameter übergeben
  }
// Ausgegeben wird "(-3,4)", die Zeichenfolgendarstellung der komplexen Zahl 

Für komplexe Zahlen sind derzeit nur einfache Operationen verfügbar: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

Die Unterstützung für zusätzliche mathematische Funktionen wird später hinzugefügt, darunter die Berechnung des Absolutwerts, Sinus, Kosinus und weiterer Funktionen.

vectorc

Ein eindimensionales Array von Zahlen des Typs complex ist für die Arbeit mit komplexen Zahlen vorgesehen. In Template-Funktionen kann die Schreibweise vector<complex> verwendet werden.

matrixc

Ein zweidimensionales Array von Zahlen des Typs complex ist für die Arbeit mit komplexen Zahlen vorgesehen. In Template-Funktionen kann die Schreibweise matrix<complex> verwendet werden.

vectorcf

Ein eindimensionales Array von Zahlen des Typs complexf ist für die Arbeit mit komplexen Zahlen vorgesehen. In Template-Funktionen kann die Schreibweise vector<complexf> verwendet werden.

matrixcf

Ein zweidimensionales Array von Zahlen des Typs complexf ist für die Arbeit mit komplexen Zahlen vorgesehen. In Template-Funktionen kann die Schreibweise matrix<complexf> verwendet werden.