Namespaces
Variants

cprojf, cproj, cprojl

From cppreference.net
Défini dans l'en-tête <complex.h>
float complex cprojf ( float complex z ) ;
(1) (depuis C99)
double complex cproj ( double complex z ) ;
(2) (depuis C99)
long double complex cprojl ( long double complex z ) ;
(3) (depuis C99)
Défini dans l'en-tête <tgmath.h>
#define cproj( z )
(4) (depuis C99)
1-3) Calcule la projection de z sur la sphère de Riemann.
4) Macro générique de type : si z a le type long double complex , long double imaginary , ou long double , cprojl est appelé. Si z a le type float complex , float imaginary , ou float , cprojf est appelé. Si z a le type double complex , double imaginary , double , ou tout type entier, cproj est appelé.

Pour la plupart des z , cproj ( z ) == z , mais tous les infinis complexes, même les nombres dont une composante est infinie et l'autre est NaN, deviennent l'infini réel positif, INFINITY + 0.0 * I ou INFINITY - 0.0 * I . Le signe de la composante imaginaire (zéro) est le signe de cimag ( z ) .

Table des matières

Paramètres

z - argument complexe

Valeur de retour

La projection de z sur la sphère de Riemann.

Cette fonction est entièrement spécifiée pour toutes les entrées possibles et n'est sujette à aucune erreur décrite dans math_errhandling

Notes

La fonction cproj aide à modéliser la sphère de Riemann en mappant toutes les infinis vers un (à part le signe du zéro imaginaire), et devrait être utilisée juste avant toute opération, particulièrement les comparaisons, qui pourrait donner des résultats erronés pour l'une des autres infinis.

Exemple

#include <stdio.h>
#include <complex.h>
#include <math.h>
int main(void)
{
    double complex z1 = cproj(1 + 2*I);
    printf("cproj(1+2i) = %.1f%+.1fi\n", creal(z1),cimag(z1));
    double complex z2 = cproj(INFINITY+2.0*I);
    printf("cproj(Inf+2i) = %.1f%+.1fi\n", creal(z2),cimag(z2));
    double complex z3 = cproj(INFINITY-2.0*I);
    printf("cproj(Inf-2i) = %.1f%+.1fi\n", creal(z3),cimag(z3));
}

Sortie :

cproj(1+2i) = 1.0+2.0i
cproj(Inf+2i) = inf+0.0i
cproj(Inf-2i) = inf-0.0i

Références

  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.3.9.5 Les fonctions cproj (p: 198)
  • 7.25 Mathématiques génériques <tgmath.h> (p: 373-375)
  • G.7 Mathématiques génériques <tgmath.h> (p: 545)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.3.9.4 Les fonctions cproj (p: 179)
  • 7.22 Mathématiques génériques <tgmath.h> (p: 335-337)
  • G.7 Mathématiques génériques <tgmath.h> (p: 480)

Voir aussi