Namespaces
Variants

cprojf, cproj, cprojl

From cppreference.net
Definido en el encabezado <complex.h>
float complex cprojf ( float complex z ) ;
(1) (desde C99)
double complex cproj ( double complex z ) ;
(2) (desde C99)
long double complex cprojl ( long double complex z ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define cproj( z )
(4) (desde C99)
1-3) Calcula la proyección de z en la esfera de Riemann.
4) Macro genérico de tipos: si z tiene tipo long double complex , long double imaginary , o long double , cprojl es llamado. Si z tiene tipo float complex , float imaginary , o float , cprojf es llamado. Si z tiene tipo double complex , double imaginary , double , o cualquier tipo entero, cproj es llamado.

Para la mayoría de los z , cproj ( z ) == z , pero todas las infinitas complejas, incluso los números donde un componente es infinito y el otro es NaN, se convierten en infinito real positivo, INFINITY + 0.0 * I o INFINITY - 0.0 * I . El signo del componente imaginario (cero) es el signo de cimag ( z ) .

Contenidos

Parámetros

z - argumento complejo

Valor de retorno

La proyección de z en la esfera de Riemann.

Esta función está completamente especificada para todas las entradas posibles y no está sujeta a ningún error descrito en math_errhandling

Notas

La función cproj ayuda a modelar la esfera de Riemann mapeando todas las infinitudes a una (dando o tomando el signo del cero imaginario), y debe usarse justo antes de cualquier operación, especialmente comparaciones, que podría dar resultados espurios para cualquiera de las otras infinitudes.

Ejemplo

#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));
}

Salida:

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

Referencias

  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.3.9.5 Las funciones cproj (p: 198)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • G.7 Matemáticas genéricas de tipos <tgmath.h> (p: 545)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.3.9.4 Las funciones cproj (p: 179)
  • 7.22 Matemáticas genéricas de tipos <tgmath.h> (p: 335-337)
  • G.7 Matemáticas genéricas de tipos <tgmath.h> (p: 480)

Véase también