Spec-Zone.ru › C

casinf, casin, casinl

Defined in header <complex.h>
float complex       casinf( float complex z );
(1) (since C99)
double complex      casin( double complex z );
(2) (since C99)
long double complex casinl( long double complex z );
(3) (since C99)
Defined in header <tgmath.h>
#define asin( z )
(4) (since 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, реализуя формулу \(\small \arcsin({\rm i}y) = {\rm i}{\rm arsinh}(y)\)arcsin(iy) = i arsinh(y), и возвращаемый тип макроса – мнимый.

Параметры

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

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

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

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

Примечания

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

Математическое определение главного значения арксинуса: \(\small \arcsin z = -{\rm i}\ln({\rm i}z+\sqrt{1-z^2})\)arcsin z = -iln(iz + √1-z2) Для любого z, \(\small{ \arcsin(z) = \arccos(-z) - \frac{\pi}{2} }\)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)); // or CMPLX(-2, -0.0)
    printf("casin(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
 
    // for any 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)

См. также

cacoscacosfcacosl
(C99)(C99)(C99)
вычисляет комплексный арккосинус
(функция)
catancatanfcatanl
(C99)(C99)(C99)
вычисляет комплексный арктангенс
(функция)
csincsinfcsinl
(C99)(C99)(C99)
вычисляет комплексную синус
(функция)
asinasinfasinl
(C99)(C99)
вычисляет арксинус (\({\small\arcsin{x} }\)arcsin(x))
(функция)
Документация C++ для asin

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/complex/casin

Spec-Zone.ru

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