Библиотека поддержки арифметических операций с комплексными числами

Содержание

В версии С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