27-07-2023
Стандартная библиотека языка программирования С |
complex.h — заголовочный файл стандартной библиотеки языка программирования С, в котором объявляются функции для комплексной арифметики. Эти функции используют встроенный тип complex
, который появился в стандарте C99.[1]
Содержание |
Библиотека определяет следующие макросы и типы данных:
#define complex _Complex #define _Complex_I const float _Complex #define imaginary _Imaginary #define _Imaginary_I const float _Imaginary #define I
для работы с комлексными и мнимыми числами. Макросы imaginary
должны быть объявлены только если платформа поддерживает работу с мнимыми числами.
Макрос I
раскрывается либо в _Imaginary_I либо в _Complex_I. В отличие от обычного запрещения переопределений библиотечных макросов стандарт разрешает переопределять I
, complex
и imaginary
.[1]
Заголовочный файл объявляет следующую директиву компилятора:
#include <complex.h> #pragma STDC CX_LIMITED_RANGE on/off
Обычные математические формулы для комплексного умножения, деления и нахождения абсолютного значения проблематичны из-за бесконечности и переполнения. Эта директива уведомляет (при флаге on) среду о том, что можно использовать обычные математические формулы.[1] Цель этой директивы - разрешить окружению использовать следующие функции:
если программист считает их безопасными.
Функции в заголовочном файле complex.h
представлены для трёх типов — double, float и long double (заметьте, что значения представлены в радианах):
cabs, cabsf, cabsl |
Абсолютное значение комплексного числа |
cacos, cacosf, cacosl |
Комплексный арккосинус |
cacosh, cacoshf, cacoshl |
Комплексный гиперболический арккосинус |
carg, cargf, cargl |
Аргумент комплексного числа |
casin, casinf, casinl |
Комплексный арксинус |
casinh, casinhf, casinhl |
Комплексный гиперболический арксинус |
catan, catanf, catanl |
Комплексный арктангенс |
catanh, catanhf, catanhl |
Комплексный гиперболический арктангенс |
ccos, ccosf, ccosl |
Комплексный косинус |
ccosh, ccoshf, ccoshl |
Комплексный гиперболический косинус |
cexp, cexpf, cexpl |
Комплексная экспонента |
cimag, cimagf, cimagl |
Мнимая часть комплексного числа |
clog, clogf, clogl |
Натуральный логарифм комплексного числа |
conj, conjf, conjl |
Комплексное сопряжённое число |
cpow, cpowf, cpowl |
Степень комплексного числа |
cproj, cprojf, cprojl |
Проекция на римановскую сферу |
creal, crealf, creall |
Действительная часть комплексного числа |
csin, csinf, csinl |
Комплексный синус |
csinh, csinhf, csinhl |
Комплексный гиперболический синус |
csqrt, csqrtf, csqrtl |
Комплексный квадратный корень |
ctan, ctanf, ctanl |
Комплексный тангенс |
ctanh, ctanhf, ctanhl |
Комплексный гиперболический тангенс |
complex.h
— основные определения, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)Complex.h.