Namespaces
Variants

cacosf, cacos, cacosl

From cppreference.net
Определено в заголовке <complex.h>
float complex cacosf ( float complex z ) ;
(1) (начиная с C99)
double complex cacos ( double complex z ) ;
(2) (начиная с C99)
long double complex cacosl ( long double complex z ) ;
(3) (начиная с C99)
Определено в заголовке <tgmath.h>
#define acos( z )
(4) (начиная с C99)
1-3) Вычисляет комплексный арккосинус от z с разрезами ветвей вне интервала [−1,+1] вдоль вещественной оси.
4) Типонезависимый макрос: Если z имеет тип long double complex , вызывается cacosl . Если z имеет тип double complex , вызывается cacos . Если z имеет тип float complex , вызывается cacosf . Если z является вещественным или целочисленным, макрос вызывает соответствующую вещественную функцию ( acosf , acos , acosl ). Если z является мнимым, макрос вызывает соответствующую версию для комплексных чисел.

Содержание

Параметры

z - комплексный аргумент

Возвращаемое значение

Если ошибок не возникает, возвращается комплексный арккосинус z в диапазоне полосы, неограниченной вдоль мнимой оси и в интервале [0; π] вдоль вещественной оси.

Обработка ошибок и специальные значения

Ошибки сообщаются в соответствии с math_errhandling .

Если реализация поддерживает арифметику с плавающей запятой IEEE,

  • cacos ( conj ( z ) ) == conj ( cacos ( z ) )
  • Если z равно ±0+0i , результат равен π/2-0i
  • Если z равно ±0+NaNi , результат равен π/2+NaNi
  • Если z равно x+∞i (для любого конечного x), результат равен π/2-∞i
  • Если z равно x+NaNi (для любого ненулевого конечного x), результат равен NaN+NaNi и может быть возбуждено FE_INVALID
  • Если z равно -∞+yi (для любого положительного конечного y), результат равен π-∞i
  • Если z равно +∞+yi (для любого положительного конечного y), результат равен +0-∞i
  • Если z равно -∞+∞i , результат равен 3π/4-∞i
  • Если z равно +∞+∞i , результат равен π/4-∞i
  • Если z равно ±∞+NaNi , результат равен NaN±∞i (знак мнимой части не определен)
  • Если z равно NaN+yi (для любого конечного y), результат равен NaN+NaNi и может быть возбуждено FE_INVALID
  • Если z равно NaN+∞i , результат равен NaN-∞i
  • Если z равно NaN+NaNi , результат равен NaN+NaNi

Примечания

Обратный косинус (или арккосинус) является многозначной функцией и требует разреза на комплексной плоскости. Разрез традиционно располагается на отрезках (-∞,-1) и (1,∞) вещественной оси.

The mathematical definition of the principal value of arc cosine is acos z =
1
2
π + i ln( i z + 1-z 2
)

Для любого z, acos(z) = π - acos(-z)

Пример

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = cacos(-2);
    printf("cacos(-2+0i) = %f%+fi\n", creal(z), cimag(z));
    double complex z2 = cacos(conj(-2)); // or CMPLX(-2, -0.0)
    printf("cacos(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
    // for any z, acos(z) = pi - acos(-z)
    double pi = acos(-1);
    double complex z3 = ccos(pi-z2);
    printf("ccos(pi - cacos(-2-0i) = %f%+fi\n", creal(z3), cimag(z3));
}

Вывод:

cacos(-2+0i) = 3.141593-1.316958i
cacos(-2-0i) (the other side of the cut) = 3.141593+1.316958i
ccos(pi - cacos(-2-0i) = 2.000000+0.000000i

Ссылки

  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.3.5.1 Функции cacos (стр. 190)
  • 7.25 Обобщённая математика <tgmath.h> (стр. 373-375)
  • G.6.1.1 Функции cacos (стр. 539)
  • G.7 Обобщённая математика <tgmath.h> (стр. 545)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.3.5.1 Функции cacos (стр. 172)
  • 7.22 Обобщённая математика <tgmath.h> (стр. 335-337)
  • G.6.1.1 Функции cacos (стр. 474)
  • G.7 Обобщённая математика <tgmath.h> (стр. 480)

Смотрите также

(C99) (C99) (C99)
вычисляет комплексный арксинус
(функция)
(C99) (C99) (C99)
вычисляет комплексный арктангенс
(функция)
(C99) (C99) (C99)
вычисляет комплексный косинус
(функция)
(C99) (C99)
вычисляет арккосинус ( arccos(x) )
(функция)