cacoshf, cacosh, cacoshl
Определено в заголовочном файле <complex.h> | ||
|---|---|---|
float complex cacoshf( float complex z ); | (1) | (начиная с C99) |
double complex cacosh( double complex z ); | (2) | (начиная с C99) |
long double complex cacoshl( long double complex z ); | (3) | (начиная с C99) |
Определено в заголовочном файле <tgmath.h> | ||
#define acosh( z ) | (4) | (начиная с C99) |
z с разрезом ветви для значений меньше 1 вдоль действительной оси.z имеет тип long double complex, вызывается cacoshl. Если z имеет тип double complex, вызывается cacosh; если z имеет тип float complex, вызывается cacoshf. Если z — действительное число или целое число, макрос вызывает соответствующую функцию для действительных чисел (acoshf, acosh, acoshl). Если z — мнимое число, макрос вызывает соответствующую версию для комплексных чисел, а тип возвращаемого значения является комплексным.Параметры
| z | - | комплексный аргумент |
Возвращаемое значение
Комплексный аркгиперболический косинус z в интервале [0; ∞) вдоль действительной оси и в интервале [−iπ; +iπ] вдоль мнимой оси.
Обработка ошибок и особые значения
Об ошибках сообщается в соответствии с math_errhandling
Если реализация поддерживает арифметику с плавающей точкой IEEE,
cacosh(conj(z)) == conj(cacosh(z))- Если
zявляется±0+0i, результатом будет+0+iπ/2 - Если
zявляется+x+∞i(для любого конечного x), результатом будет+∞+iπ/2 - Если
zявляется+x+NaNi(для любого ненулевого конечного x), результатом будетNaN+NaNi, и может быть вызвано исключениеFE_INVALID. - Если
zявляется0+NaNi, результатом будетNaN±iπ/2, знак мнимой части не определён - Если
zявляется-∞+yi(для любого положительного конечного y), результатом будет+∞+iπ - Если
zявляется+∞+yi(для любого положительного конечного y), результатом будет+∞+0i - Если
zявляется-∞+∞i, результатом будет+∞+3iπ/4 - Если
zявляется+∞+∞i, результатом будет+∞+iπ/4 - Если
zявляется±∞+NaNi, результатом будет+∞+NaNi - Если
zявляетсяNaN+yi(для любого конечного y), результатом будетNaN+NaNi, и может быть вызвано исключениеFE_INVALID. - Если
zявляетсяNaN+∞i, результатом будет+∞+NaNi - Если
zявляетсяNaN+NaNi, результатом будетNaN+NaNi
Примечания
Хотя в стандарте C эта функция называется «комплексный аркгиперболический косинус», обратные функции гиперболических функций являются площадными функциями. Их аргумент — площадь гиперболического сектора, а не дуга. Правильное название — «комплексный обратный гиперболический косинус» или, менее распространённое, «комплексный ареакосинус гиперболический».
Обратный гиперболический косинус — многозначная функция, для которой необходим разрез ветви на комплексной плоскости. Разрез ветви обычно располагают на отрезке (-∞,+1) действительной оси.
Математическое определение главного значения обратного гиперболического косинуса: acosh z = ln(z + √z+1 √z-1)
Для любого z, acosh(z) =
√z-1/√1-z acos(z), или просто i acos(z) в верхней полуплоскости комплексной плоскости.
Пример
#include <stdio.h>
#include <complex.h>
int main(void)
{
double complex z = cacosh(0.5);
printf("cacosh(+0.5+0i) = %f%+fi\n", creal(z), cimag(z));
double complex z2 = conj(0.5); // or cacosh(CMPLX(0.5, -0.0)) in C11
printf("cacosh(+0.5-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
// in upper half-plane, acosh(z) = i*acos(z)
double complex z3 = casinh(1+I);
printf("casinh(1+1i) = %f%+fi\n", creal(z3), cimag(z3));
double complex z4 = I*casin(1+I);
printf("I*asin(1+1i) = %f%+fi\n", creal(z4), cimag(z4));
}
Вывод:
cacosh(+0.5+0i) = 0.000000-1.047198i cacosh(+0.5-0i) (the other side of the cut) = 0.500000-0.000000i casinh(1+1i) = 1.061275+0.666239i I*asin(1+1i) = -1.061275+0.666239i
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.3.6.1 Функции cacosh (стр. 192)
- 7.25 Обобщённая по типу математическая библиотека <tgmath.h> (стр. 373-375)
- G.6.2.1 Функции cacosh (стр. 539-540)
- G.7 Обобщённая по типу математическая библиотека <tgmath.h> (стр. 545)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.3.6.1 Функции cacosh (стр. 174)
- 7.22 Обобщённая по типу математическая библиотека <tgmath.h> (стр. 335-337)
- G.6.2.1 Функции cacosh (стр. 474-475)
- G.7 Обобщённая по типу математическая библиотека <tgmath.h> (стр. 480)
См. также
|
(C99)(C99)(C99) | вычисляет комплексный арккосинус (функция) |
|
(C99)(C99)(C99) | вычисляет комплексный аркгиперболический синус (функция) |
|
(C99)(C99)(C99) | вычисляет комплексный аркгиперболический тангенс (функция) |
|
(C99)(C99)(C99) | вычисляет комплексный гиперболический косинус (функция) |
|
(C99)(C99)(C99) | вычисляет обратный гиперболический косинус (\({\small\operatorname{arcosh}{x} }\)arcosh(x)) (функция) |
Документация C++ для acosh |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/numeric/complex/cacosh