Справочник по C/C++
Библиотека комплексных чисел

В версии С99 расширен язык С: теперь появилась возможность работать с комплексными числами. С самого начала важно отметить, что математическая библиотека комплексных чисел в версии С99 совершенно отличается от библиотеки классов комплексных чисел, определенной в языке C++. Если вы собираетесь программировать на языке C++, вам обязательно стоит использовать библиотеку комплексных чисел C++. Библиотека комплексных чисел версии С99 предназначена только для программистов, которые ограничены рамками языка С.

Библиотека комплексных чисел версии С99 поддерживается заголовком <conplex.h>. В нем определены следующие макросы.

Макрос Расширение
complex _Complex
imaginary _Imaginary
_Complex_I (const float_Complex) 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.

Ниже приведены математические функции, предназначенные для работы с комплексными числами. Обратите внимание на определение float complex-, double complex- и long double complex-версий для каждой функции. В float complex-версии используется суффикс f, а в long double complex-версии - суффикс 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);
Возвращает комплексное значение косинуса от параметра 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 cproj1(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);
Возвращает комплексное значение тангенса от параметра arg
float complex ctanhf(float complex arg);
double complex ctanh(double complex arg);
long double complex ctanhl(long double complex arg);
Возвращает комплексное значение гиперболического тангенса от параметра arg

 




Реклама