Nombre complexe (complex, complexf)

Le type intégré complex est une structure avec deux champs double :

struct complex
  {
   double             real;   // partie réelle
   double             imag;   // partie imaginaire
  };

Le type intégré complexf est une structure avec deux champs float :

struct complexf
  {
   float              real;   // partie réelle
   float              imag;   // partie imaginaire
  };

 

Les types complex et complexf peuvent être passés par valeur comme paramètres des fonctions MQL5 (contrairement aux structures ordinaires, qui sont passées uniquement par référence). Pour les fonctions importées depuis des DLL, les types complex et complexf doivent être passés uniquement par référence.

Le suffixe 'i' est utilisé pour décrire les constantes complexes :

complex square(complex c)
  {
   return(c*c);
  }  
void OnStart()
  {
   Print(square(1+2i));  // Une constante est passée comme paramètre
  }
// "(-3,4)" sera affiché, ce qui correspond à la représentation textuelle du nombre complexe 

Seules les opérations simples sont actuellement disponibles pour les nombres complexes : =, +, -, *, /, +=, -=, *=, /=, ==, !=.

La prise en charge de fonctions mathématiques supplémentaires sera ajoutée ultérieurement, notamment le calcul de la valeur absolue, du sinus, du cosinus et d'autres fonctions.

vectorc

Un tableau unidimensionnel de nombres de type complex est destiné au traitement des nombres complexes. L'écriture vector<complex> peut être utilisée dans les fonctions modèles.

matrixc

Un tableau bidimensionnel de nombres de type complex est destiné au traitement des nombres complexes. L'écriture matrix<complex> peut être utilisée dans les fonctions modèles.

vectorcf

Un tableau unidimensionnel de nombres de type complexf est destiné au traitement des nombres complexes. L'écriture vector<complexf> peut être utilisée dans les fonctions modèles.

matrixcf

Un tableau bidimensionnel de nombres de type complexf est destiné au traitement des nombres complexes. L'écriture matrix<complexf> peut être utilisée dans les fonctions modèles.