Namespaces
Variants

casinf, casin, casinl

From cppreference.net
Определено в заголовочном файле <complex.h>
float complex casinf ( float complex z ) ;
(1) (начиная с C99)
double complex casin ( double complex z ) ;
(2) (начиная с C99)
long double complex casinl ( long double complex z ) ;
(3) (начиная с C99)
Определено в заголовочном файле <tgmath.h>
#define asin( z )
(4) (начиная с C99)
1-3) Вычисляет комплексный арксинус z с разрезами ветвей вне интервала [−1,+1] вдоль действительной оси.
4) Типонезависимый макрос: Если z имеет тип long double complex , casinl вызывается. Если z имеет тип double complex , casin вызывается. Если z имеет тип float complex , casinf вызывается. Если z является вещественным или целочисленным, то макрос вызывает соответствующую вещественную функцию ( asinf , asin , asinl ). Если z является мнимым, то макрос вызывает соответствующую вещественную версию функции asinh , реализуя формулу arcsin(iy) = i arsinh(y) , и возвращаемый тип макроса является мнимым.

Содержание

Параметры

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

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

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

Ошибки и особые случаи обрабатываются так, как если бы операция была реализована через - I * casinh ( I * z )

Примечания

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

Математическое определение главного значения арксинуса: arcsin z = - i ln( i z + 1-z 2
)

For any z, arcsin(z) = acos(-z) -
π
2

Пример

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = casin(-2);
    printf("casin(-2+0i) = %f%+fi\n", creal(z), cimag(z));
    double complex z2 = casin(conj(-2)); // или CMPLX(-2, -0.0)
    printf("casin(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
    // для любого z, asin(z) = acos(-z) - pi/2
    double pi = acos(-1);
    double complex z3 = csin(cacos(conj(-2))-pi/2);
    printf("csin(cacos(-2-0i)-pi/2) = %f%+fi\n", creal(z3), cimag(z3));
}

Вывод:

casin(-2+0i) = -1.570796+1.316958i
casin(-2-0i) (the other side of the cut) = -1.570796-1.316958i
csin(cacos(-2-0i)-pi/2) = 2.000000+0.000000i

Ссылки

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

Смотри также

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