libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
Тригонометрические и гиперболические функции вещественного комплексного аргумента

Функции

int acos_cmplx (complex_t *x, int n, complex_t *y)
 Арккосинус комплексного аргумента x Подробнее...
 
int asin_cmplx (complex_t *x, int n, complex_t *y)
 Арксинус комплексного аргумента x Подробнее...
 
int cos_cmplx (complex_t *x, int n, complex_t *y)
 Косинус комплексного аргумента x Подробнее...
 
int sin_cmplx (complex_t *x, int n, complex_t *y)
 Синус комплексного аргумента x Подробнее...
 

Подробное описание

Функции

◆ acos_cmplx()

int acos_cmplx ( complex_t x,
int  n,
complex_t y 
)

Арккосинус комплексного аргумента x


Функция рассчитывает значения арккосинуса комплексного аргумента, заданного вектором x длины n:

\[ \textrm{Arccos}(x) = \frac{\pi}{2} - \textrm{Arcsin}(x) = \frac{\pi}{2} -j \textrm{Ln}\left( j x + \sqrt{1 - x^2} \right) \]

Аргументы
[in]xУказатель на вектор аргумента комплексного арккосинуса.
Размер вектора [n x 1].

[in]nРазмер входного и выходного векторов x и y.

[out]yУказатель на вектор значений комплексного арккосинуса, соответствующего входному вектору x.
Размер массива [n x 1].
Память должна быть выделена.

Возвращает
RES_OK если значение функции рассчитано успешно .
В противном случае код ошибки:
Заметки
Функция может использоваться для расчета арккосинуса аргумента большего единицы, когда вещественная функция acos не определена.

Например при выполнении следующего кода

complex_t x[3] = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};
complex_t y[3];
int k;
acos_cmplx(x, 3, y);
for(k = 0; k < 3; k++)
printf("acos_cmplx(%.1f%+.1fj) = %.3f%+.3fj\n",
RE(x[k]), IM(x[k]), RE(y[k]), IM(y[k]));


Результатом работы будет

acos_cmplx(1.0+2.0j) = 1.144-1.529j
acos_cmplx(3.0+4.0j) = 0.937-2.306j
acos_cmplx(5.0+6.0j) = 0.880-2.749j
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле complex.c строка 80

Используется в ellip_acd_cmplx().

◆ asin_cmplx()

int asin_cmplx ( complex_t x,
int  n,
complex_t y 
)

Арксинус комплексного аргумента x


Функция рассчитывает значения арксинуса комплексного аргумента, заданного вектором x длины n:

\[ \textrm{Arcsin}(x) = j \textrm{Ln}\left( j x + \sqrt{1 - x^2} \right) \]

Аргументы
[in]xУказатель на вектор аргумента комплексного арксинуса.
Размер вектора [n x 1].

[in]nРазмер входного и выходного векторов x и y.

[out]yУказатель на вектор значений комплексного арксинуса, соответствующего входному вектору x.
Размер массива [n x 1].
Память должна быть выделена.

Возвращает
RES_OK если значение функции рассчитано успешно .
В противном случае код ошибки:
Заметки
Функция может использоваться для расчета арксинуса аргумента большего единицы, когда вещественная функция acos не определена.

Например при выполнении следующего кода

complex_t x[3] = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};
complex_t y[3];
int k;
asin_cmplx(x, 3, y);
for(k = 0; k < 3; k++)
printf("asin_cmplx(%.1f%+.1fj) = %.3f%+.3fj\n",
RE(x[k]), IM(x[k]), RE(y[k]), IM(y[k]));


Результатом работы будет

asin_cmplx(1.0+2.0j) = 0.427+1.529j
asin_cmplx(3.0+4.0j) = 0.634+2.306j
asin_cmplx(5.0+6.0j) = 0.691+2.749j
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле complex.c строка 151

Используется в acos_cmplx() и ellip_asn_cmplx().

◆ cos_cmplx()

int cos_cmplx ( complex_t x,
int  n,
complex_t y 
)

Косинус комплексного аргумента x


Функция рассчитывает значения косинуса комплексного аргумента, заданного вектором x длины n:

\[ \textrm{cos}(x) = \frac{\exp(jx) + \exp(-jx)}{2} \]

Аргументы
[in]xУказатель на вектор аргумента комплексного косинуса.
Размер вектора [n x 1].

[in]nРазмер входного и выходного векторов x и y.

[out]yУказатель на вектор значений комплексного косинуса, соответствующего входному вектору x.
Размер массива [n x 1].
Память должна быть выделена.

Возвращает
RES_OK если значение функции рассчитано успешно .
В противном случае код ошибки:
Например при выполнении следующего кода
complex_t x[3] = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};
complex_t y[3];
int k;
cos_cmplx(x, 3, y);
for(k = 0; k < 3; k++)
printf("cos_cmplx(%.1f%+.1fj) = %9.3f%+9.3fj\n",
RE(x[k]), IM(x[k]), RE(y[k]), IM(y[k]));

Результатом работы будет
cos_cmplx(1.0+2.0j) =     2.033   -3.052j
cos_cmplx(3.0+4.0j) =   -27.035   -3.851j
cos_cmplx(5.0+6.0j) =    57.219 +193.428j
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле complex.c строка 299

Используется в ellip_cd_cmplx().

◆ sin_cmplx()

int sin_cmplx ( complex_t x,
int  n,
complex_t y 
)

Синус комплексного аргумента x


Функция рассчитывает значения синуса комплексного аргумента, заданного вектором x длины n:

\[ \textrm{sin}(x) = \frac{\exp(jx) - \exp(-jx)}{2j} \]

Аргументы
[in]xУказатель на вектор аргумента комплексного синуса.
Размер вектора [n x 1].

[in]nРазмер входного и выходного векторов x и y.

[out]yУказатель на вектор значений комплексного синуса, соответствующего входному вектору x.
Размер массива [n x 1].
Память должна быть выделена.

Возвращает
RES_OK если значение функции рассчитано успешно .
В противном случае код ошибки:
Например при выполнении следующего кода
complex_t x[3] = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};
complex_t y[3];
int k;
sin_cmplx(x, 3, y);
for(k = 0; k < 3; k++)
printf("sin_cmplx(%.1f%+.1fj) = %9.3f%+9.3fj\n",
RE(x[k]), IM(x[k]), RE(y[k]), IM(y[k]));

Результатом работы будет
sin_cmplx(1.0+2.0j) =     3.166   +1.960j
sin_cmplx(3.0+4.0j) =     3.854  -27.017j
sin_cmplx(5.0+6.0j) =  -193.430  +57.218j
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле complex.c строка 513

Используется в ellip_sn_cmplx().