?
This document uses PHP Chinese website manual Release
在頭文件<math.h>中定義 | ||
---|---|---|
float cprojf( float complex z ); | (1) | (since C99) |
double cproj( double complex z ); | (2) | (since C99) |
long double cprojl( long double complex z ); | (3) | (since C99) |
Defined in header <tgmath.h> | ||
#define cproj( z ) | (4) | (since C99) |
1-3)計(jì)算z
黎曼球上的投影。
4)式泛型宏:如果z
具有類型long
double
complex
,long
double
imaginary
或long double
,cprojl
被調(diào)用。如果z
有類型float
complex
,float
imaginary
或者float
,cprojf
被調(diào)用。如果z
有類型double
complex
,double
imaginary
,double
,或任何整數(shù)類型,cproj
被調(diào)用。
對于大多數(shù)情況z
,cproj(z)==z
但所有復(fù)雜的無窮大,即使是一個(gè)分量無窮大而另一個(gè)是NaN的數(shù)字,也會(huì)變成正實(shí)的無窮大,INFINITY+0.0*I
或者INFINITY-0.0*I
。虛數(shù)(零)分量的符號(hào)是符號(hào)cimag(z)
。
z | - | 復(fù)雜的論點(diǎn) |
---|
的投影z
上的黎曼球體。
該函數(shù)完全為所有可能的輸入指定,并且不受math_errhandling中描述的任何錯(cuò)誤的影響。
該cproj
函數(shù)通過將所有無窮大映射到一個(gè)(給出或取出虛構(gòu)零點(diǎn)的符號(hào))來幫助對黎曼球體進(jìn)行建模,并且應(yīng)該在任何操作之前使用,特別是比較,這可能會(huì)給任何其他無窮大造成虛假結(jié)果。
#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));}
輸出:
cproj(1+2i) = 1.0+2.0icproj(Inf+2i) = inf+0.0icproj(Inf-2i) = inf-0.0i
C11標(biāo)準(zhǔn)(ISO / IEC 9899:2011):
7.3.9.5 cproj函數(shù)(p:198)
7.25類型通用數(shù)學(xué)<tgmath.h>(p:373-375)
G.7類型 - 通用數(shù)學(xué)<tgmath.h>(p:545)
C99標(biāo)準(zhǔn)(ISO / IEC 9899:1999):
7.3.9.4 cproj函數(shù)(p:179)
7.22類型通用數(shù)學(xué)<tgmath.h>(p:335-337)
G.7類型 - 通用數(shù)學(xué)<tgmath.h>(p:480)