Библиотека поддержки арифметических операций с комплексными числами
Содержание
В версии С99 стало возможным выполнять арифметические операции с комплексными числами. Библиотека поддержки арифметических операций с комплексными числами имеет заголовочный файл <complex.h>. В нем определены следующие макросы:
Макрос | Расширение
|
---|
complex | _Complex
|
imaginary | _Imaginary
|
_Complex_I | (const float_Coraplex) i
|
_Imaginary_I | (const float imaginary) i
|
I | _Imaginary_I (или _Complex_I, если не поддерживаются мнимые типы)
|
Здесь i представляет мнимое значение, которое равно квадратному корню из —1. Поддержка мнимых типов не обязательна.
В версии С99 вместо ключевьк слов complex и imaginary определены слова _Complex и _Imaginary, поскольку во многих существующих программах, написанных на С89, уже определены пользовательские типы данных complex и imaginary для комплексных чисел. Использование в версии С99 слов _Complex и _Imaginary позволяет избежать изменения написанного ранее кода. Однако в новые программы лучше всего включить заголовок <complex.h>, а затем использовать макросы complex и imaginary.
На заметку | В C++ определен класс complex, в котором предлагается иной способ реалазации действий с комплексными числами.
|
Ниже в табл. 20.1 приведены математические функции, часто используемые в элементарной теории функций комплексного переменного. Обратите внимание, что для каждой функции определены версии float complex, double complex и long double complex. Имя версии float complex имеет суффикс f, а имя версии long double complex — суффикс l. Углы измеряются, разумеется, в радианах.
Таблица 20.1. Математические функции, используемые в элементарной теории функций комплексного переменного
Функция | Назначение
|
---|
float cabsf(
float complex arg);
double cabs(
double complex arg);
long double cabsl(
long double complex arg);
| Возвращает абсолютную величину (модуль) комплексного числа arg
|
float complex cacosf(
float complex arg);
double complex cacos(
double complex arg);
long double complex cacosl(
long double complex arg);
| Возвращает комплексное значение арккосинуса от параметра arg
|
float complex cacoshf(
float complex arg);
double complex cacosh(
double complex arg);
long double complex cacoshl(
long double complex arg);
| Возвращает комплексное значение гиперболического арккосинуса от параметра arg
|
float cargf(
float complex arg);
double carg(
double complex arg);
long double cargl(
long double complex arg);
| Возвращает значение аргумента комплексного числа arg
|
float complex casinf(
float complex arg);
double complex casin(
double complex arg);
long double complex casinl(
long double complex arg);
| Возвращает комплексное значение арксинуса от параметра arg
|
float complex casinhf(
float complex arg);
double complex casinh(
double complex arg);
long double complex casinhl(
long double complex arg);
| Возвращает комплексное значение гиперболического арксинуса от параметра arg
|
float complex catanf(
float complex arg);
double complex catan(
double complex arg);
long double complex catanl(
long double complex arg);
| Возвращает комплексное значение арктангенса от параметра arg
|
float complex catanhf(
float complex arg);
double complex catanh(
double complex arg);
long double complex catanhl(
long double complex arg);
| Возвращает комплексное значение гиперболического арктангенса от параметра arg
|
float complex ccosf(
float complex arg);
double complex ccos(
double complex arg);
long double complex ccosl(
long double complex arg);
| Возвращает комплексное значение косинуса от параметpa arg
|
float complex ccoshf(
float complex arg);
double complex ccosh(
double complex arg);
long double complex ccoshl(
long double complex arg);
| Возвращает комплексное значение гиперболического косинуса от параметра arg
|
float complex cexpf(
float complex arg);
double complex cexp(
double complex arg);
long double complex cexpl(
long double complex arg);
| Возвращает комплексное значение earg, где е — основание натурального логарифма
|
float cimagf(
float complex arg);
double cimag(
double complex arg);
long double cimagl(
long double complex arg);
| Возвращает мнимую часть параметра arg
|
float complex clogf(
float complex arg);
double complex clog(
double complex arg);
long double complex clogl(
long double complex arg);
| Возвращает комплексное значение натурального логарифма от параметра arg
|
float complex conjf(
float complex arg);
double complex conj(
double complex arg);
long double complex conjl(
long double complex arg);
| Возвращает комплексно-сопряженное значение параметра arg
|
float complex cpowf(
float complex a,
long double complex b);
double complex cpow(
double complex a,
double complex b);
long double complex cpowl(
long double complex a,
long double complex b);
| Возвращает комплексное значение ab
|
float complex cprojf(
float complex arg);
double complex cproj(
double complex arg);
long double complex cprojl(
long double complex arg);
| Возвращает проекцию параметра arg на сферу Римана
|
float crealf(
float complex arg);
double creal(
double complex arg);
long double creall(
long double complex arg);
| Возвращает вещественную часть параметра arg
|
float complex csinf(
float complex arg);
double complex csin(
double complex arg);
long double complex csinl(
long double complex arg);
| Возвращает комплексное значение синуса от параметра arg
|
float complex csinhf(
float complex arg);
double complex csinh(
double complex arg);
long double complex csinhl(
long double complex arg);
| Возвращает комплексное значение гиперболического синуса от параметра arg
|
float complex csqrtf(
float complex arg);
double complex csqrt(
double complex arg);
long double complex csqrtl(
long double complex arg);
| Возвращает комплексное значение квадратного корня из параметра arg
|
float complex ctanf(
float complex arg);
double complex ctan(
double complex arg);
long double complex ctanl(
long double complex arg);
| Возвращает комплексное значение тангенса от параметpa arg
|
float complex ctanhf(
float complex arg);
double complex ctanh(
double complex arg);
long double complex ctanhl(
long double complex arg);
| Возвращает комплексное значение гиперболического тангенса от параметра arg
|