std::proj(std::complex) - cppreference.com

##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::proj(std::complex)

From cppreference.com
< cpp‎ | numeric‎ | complex

Defined in header `<complex>` |  |
template< class T > complex<T> proj( const complex<T>& z ); | (1) | (since C++11)
std::complex<long double> proj( long double z ); | (2) | (since C++11)
template< class DoubleOrIngeter > std::complex<double> proj( DoubleOrInteger z ); | (3) | (since C++11)
std::complex<float> proj( float z ); | (4) | (since C++11)

Returns the projection of the complex number `z` onto the Riemann sphere.

For most `z`, std::proj(z)==z, but all complex infinities, even the numbers where one component is infinite and the other is NaN, become positive real infinity, (INFINITY, 0) or (INFINITY, -0). The sign of the imaginary (zero) component is the sign of std::imag(z).

(since C++11)Additional overloads are provided for float, double, long double, and all integer types, which are treated as complex numbers with zero imaginary component.

### [edit] Parameters

z | - | complex value

### [edit] Return value

the projection of `z` onto the Riemann sphere

### [edit] Example

Run this code

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

Output:

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

### [edit] See also

abs(std::complex) | returns the magnitude of a complex number (function template) [edit]
norm | returns the squared magnitude (function template) [edit]
polar | constructs a complex number from magnitude and phase angle (function template) [edit]
C documentation for cproj

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/numeric/complex/proj&oldid=71703"