Namespaces
Variants

CMPLXF, CMPLX, CMPLXL

From cppreference.net
Défini dans l'en-tête <complex.h>
float complex CMPLXF ( float real, float imag ) ;
(depuis C11)
double complex CMPLX ( double real, double imag ) ;
(depuis C11)
long double complex CMPLXL ( long double real, long double imag ) ;
(depuis C11)

Chacune de ces macros se développe en une expression qui évalue la valeur du type complexe spécifié, avec la partie réelle ayant la valeur de real (convertie en type d'argument spécifié) et la partie imaginaire ayant la valeur de imag (convertie en type d'argument spécifié)

Les expressions conviennent à une utilisation en tant qu'initialiseurs pour des objets ayant une durée de stockage statique ou thread, tant que les expressions real et imag sont également appropriées.

Table des matières

Paramètres

real - partie réelle du nombre complexe à retourner
imag - partie imaginaire du nombre complexe à retourner

Valeur de retour

Un nombre complexe composé de real et imag comme parties réelle et imaginaire.

Notes

Ces macros sont implémentées comme si les types imaginaires sont pris en charge (même s'ils ne sont autrement pas pris en charge et que _Imaginary_I est en réalité non défini) et comme si définies comme suit :

#define CMPLX(x, y) ((double complex)((double)(x) + _Imaginary_I * (double)(y)))
#define CMPLXF(x, y) ((float complex)((float)(x) + _Imaginary_I * (float)(y)))
#define CMPLXL(x, y) ((long double complex)((long double)(x) + \
                      _Imaginary_I * (long double)(y)))

Exemple

#include <stdio.h>
#include <complex.h>
int main(void)
{
    double complex z = CMPLX(0.0, -0.0);
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

Sortie :

z = 0.0-0.0i

Références

  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.3.9.3 Les macros CMPLX (p: 197)

Voir aussi

la constante d'unité imaginaire i
(constante de macro)
documentation C++ pour complex