Komplexen Zahlen (complex)

Der eingebaute complex Typ ist eine Struktur mit zwei double:

struct complex
  {
   double             real;   // reeler Teile
   double             imag;   // imaginärer Teil
  };

Der Typ "complex" kann als Parameter für MQL5-Funktionen per Wert übergeben werden (im Gegensatz zu normalen Strukturen, die nur per Referenz übergeben werden). Bei Funktionen, die aus DLLs importiert werden, muss der Typ "complex" ausschließlich als Referenz übergeben werden.

Das Suffix 'i' wird verwendet, um komplexe Konstanten zu kennzeichnen:

complex square(complex c)
  {
   return(c*c);
  } 
void OnStart()
  {
   Print(square(1+2i));  // Die Übergaben einer Konstanten als Parameter
  }
// ausgegeben wird "(-3,4)", die komplexe Zahl in Textform 

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

Später wird die Unterstützung weiterer mathematischer Funktionen hinzukommen, die die Berechnung von Absolutwert, Sinus, Cosinus und anderen ermöglichen.

vectorc

Ein eindimensionales Array mit Zahlen des Typs complex für komplexe Zahlen. Der Ausdruck vector<complex> kann für Template-Funktionen verwendet werden. Operationen mit Vektoren vom Typ vectorc sind noch nicht implementiert.

matrixc

Ein zweidimensionales Array mit Zahlen des Typs complex ist für die Verarbeitung komplexer Zahlen gedacht. Der Ausdruck matrix<complex> kann für Template-Funktionen verwendet werden. Operationen mit Matrizen vom Typ matrixc sind noch nicht implementiert.