A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../../cpp/../c/header/../numeric/complex/cproj.html below:

cprojf, cproj, cprojl - cppreference.com

(1) (since C99) (2) (since C99) (3) (since C99)

#define cproj( z )

(4) (since C99)

1-3) Computes the projection of z on the Riemann sphere.

4)

Type-generic macro: if

z

has type

long double complex

,

long double imaginary

, or

long double

,

cprojl

is called. If

z

has type

float complex

,

float imaginary

, or

float

,

cprojf

is called. If

z

has type

double complex

,

double imaginary

,

double

, or any integer type,

cproj

is called.

For most z, cproj(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.0*I or INFINITY-0.0*I. The sign of the imaginary (zero) component is the sign of cimag(z).

[edit] Parameters [edit] Return value

The projection of z on the Riemann sphere.

This function is fully specified for all possible inputs and is not subject to any errors described in math_errhandling

[edit] Notes

The cproj function helps model the Riemann sphere by mapping all infinities to one (give or take the sign of the imaginary zero), and should be used just before any operation, especially comparisons, that might give spurious results for any of the other infinities.

[edit] Example
#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));
}

Output:

cproj(1+2i) = 1.0+2.0i
cproj(Inf+2i) = inf+0.0i
cproj(Inf-2i) = inf-0.0i
[edit] References
[edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4