Espacios de nombres
Variantes
Acciones

std::proj(std::complex)

De cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
std::complex
Funciones miembro
Funciones no miembro
proj
(C++11)
Funciones exponenciales
Funciones de potencias
Funciones trigonométricas
(C++11)
(C++11)
(C++11)
Funciones hiperbólicas
(C++11)
(C++11)
(C++11)
 
Definido en el archivo de encabezado <complex>
template< class T >
std::complex<T> proj( const std::complex<T>& z );
(1) (desde C++11)
std::complex<long double> proj( long double z );
(2) (desde C++11)
template< class DoubleOrInteger >
std::complex<double> proj( DoubleOrInteger z );
(3) (desde C++11)
std::complex<float> proj( float z );
(4) (desde C++11)

Devuelve la proyección del número complejo z sobre la esfera de Riemann.

Para la mayoría de las zetas, std::proj(z)==z, pero todos los infinitos complejos, incluso los números donde un componente es infinito y el otro es NaN, se vuelven un infinito real positivo, (INFINITY, 0.0) o (INFINITY, -0.0). El signo del componente imaginario (cero) es el signo de std::imag(z).

Se proporcionan sobrecargas adicionales para float, double, long double y todos los tipos de enteros, que se tratan como números complejos con un componente imaginario igual a cero positivo.

Contenido

[editar] Parámetros

z - El valor complejo.

[editar] Valor de retorno

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

[editar] Notas

La función proj ayuda a modelar la esfera de Riemann asignando todos los infinitos a uno (más o menos el signo del cero imaginario), y debe usarse justo antes de cualquier operación, especialmente las comparaciones, que podrían dar resultados falsos para cualquiera de los otros infinitos.

[editar] Ejemplo

#include <iostream>
#include <complex>
 
int main()
{
    std::complex<double> c1(1, 2);
    std::cout << "proj" << c1 << " = " << std::proj(c1) << '\n';
 
    std::complex<double> c2(INFINITY, -1);
    std::cout << "proj" << c2 << " = " << std::proj(c2) << '\n';
 
    std::complex<double> c3(0, -INFINITY);
    std::cout << "proj" << c3 << " = " << std::proj(c3) << '\n';
}

Salida:

proj(1,2) = (1,2)
proj(inf,-1) = (inf,-0)
proj(0,-inf) = (inf,-0)

[editar] Véase también

Devuelve la magnitud de un número complejo.
(plantilla de función) [editar]
Devuelve la magnitud al cuadrado.
(plantilla de función) [editar]
Construye un número complejo a partir de una magnitud y un ángulo de fase.
(plantilla de función) [editar]