cprojf, cproj, cprojl
|
Определено в заголовке
<complex.h>
|
||
| (1) | (начиная с C99) | |
| (2) | (начиная с C99) | |
| (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
imaginary
,
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
|