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) |
z с разрывами ветвей вне интервала [−1,+1] вдоль вещественной оси.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)
См. также
|
(C99)(C99)(C99) |
вычисляет комплексный арккосинус (функция) |
|
(C99)(C99)(C99) |
вычисляет комплексный арктангенс (функция) |
|
(C99)(C99)(C99) |
вычисляет комплексную синус (функция) |
|
(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