cprojf, cproj, cprojl
Определено в заголовочном файле <complex.h> |
||
|---|---|---|
float complex cprojf( float complex z ); |
(1) | (с C99) |
double complex cproj( double complex z ); |
(2) | (с C99) |
long double complex cprojl( long double complex z ); |
(3) | (с C99) |
Определено в заголовочном файле <tgmath.h> |
||
#define cproj( z ) |
(4) | (с C99) |
z на сферу Римана.z имеет тип long double complex, long double imaginary, или long double, вызывается cprojl. Если z имеет тип float complex, float imaginary, или float, вызывается cprojf. Если z имеет тип double complex, double, или любой целочисленный тип, вызывается cproj.
Для большинства z, cproj(z)==z, но все комплексные бесконечности, даже числа, где одна компонента бесконечна, а другая NaN, становятся положительной действительной бесконечностью, INFINITY+0.0*I или INFINITY-0.0*I. Знак мнимой (нулевой) компоненты — это знак cimag(z).
Параметры
| z | - | комплексное значение |
Возвращаемое значение
Проекция z на сферу Римана.
Функция полностью специфицирована для всех возможных входных данных и не подвержена ошибкам, описанным в math_errhandling
Примечания
Функция cproj помогает смоделировать сферу Римана, отображая все бесконечности в одну (с учетом знака мнимой нулевой компоненты), и должна использоваться непосредственно перед любой операцией, особенно сравнением, которая может дать ложные результаты для любых других бесконечностей.
Пример
#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.0i cproj(Inf+2i) = inf+0.0i cproj(Inf-2i) = inf-0.0i
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.3.9.5 Функции cproj (с. 198)
- 7.25 Универсальные математические функции <tgmath.h> (с. 373-375)
- G.7 Универсальные математические функции <tgmath.h> (с. 545)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.3.9.4 Функции cproj (с. 179)
- 7.22 Универсальные математические функции <tgmath.h> (с. 335-337)
- G.7 Универсальные математические функции <tgmath.h> (с. 480)
См. также
Документация C++ для proj |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/complex/cproj