Spec-Zone.ru › C

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)
1-3) Вычисляет комплексный аркгиперболический косинус комплексного значения z с разрезом ветви для значений меньше 1 вдоль действительной оси.
4) Обобщённый по типу макрос: если 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)

См. также

cacoscacosfcacosl
(C99)(C99)(C99)
вычисляет комплексный арккосинус
(функция)
casinhcasinhfcasinhl
(C99)(C99)(C99)
вычисляет комплексный аркгиперболический синус
(функция)
catanhcatanhfcatanhl
(C99)(C99)(C99)
вычисляет комплексный аркгиперболический тангенс
(функция)
ccoshccoshfccoshl
(C99)(C99)(C99)
вычисляет комплексный гиперболический косинус
(функция)
acoshacoshfacoshl
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API