Стандартная библиотека языка программирования С |
|
math.h — заголовочный файл стандартной библиотеки языка программирования С, разработанный для выполнения простых математических операций. Большинство функций привлекают использование чисел с плавающей точкой. C++ также реализует данные функции для обеспечения совместимости, все они содержатся в заголовочном файле cmath.
Все эти функции принимают double , если не определено иначе. Для работы с типами float и long double используются функции с постфиксами f и l соответственно. Все функции, принимающие или возвращающие угол, работают с радианами.
Содержание
Базовые функции [ править | править код ]
Имя | Описание |
---|---|
abs | Возвращает абсолютную величину целого числа |
acos | арккосинус |
asin | арксинус |
atan | арктангенс |
atan2 | арктангенс с двумя параметрами |
ceil | округление до ближайшего большего целого числа |
cos | косинус |
exp | вычисление экспоненты |
fabs | абсолютная величина (числа с плавающей точкой) |
floor | округление до ближайшего меньшего целого числа |
fmod | вычисление остатка от деления нацело для чисел с плавающей точкой |
frexp | разбивает число с плавающей точкой на мантиссу и показатель степени. |
ldexp | умножение числа с плавающей точкой на целую степень двух |
log | натуральный логарифм |
log10 | логарифм по основанию 10 |
modf(x,p) | извлекает целую и дробную части (с учетом знака) из числа с плавающей точкой |
pow(x,y) | результат возведения x в степень y, x y |
sin | синус |
sinh | гиперболический синус |
cosh | гиперболический косинус |
sqrt | квадратный корень |
tan | тангенс |
tanh | гиперболический тангенс |
Функции стандарта C++ [ править | править код ]
Имя | Описание |
---|---|
acosh | гиперболический ареакосинус |
asinh | гиперболический ареасинус |
atanh | гиперболический ареатангенс |
cbrt | кубический корень |
copysign(x,y) | возвращает величину, абсолютное значение которой равно x , но знак которой соответствует знаку y |
erf | функция ошибок |
erfc | дополнительная функция ошибок |
exp2(x) | значение числа 2, возведённого в степень x , 2 x |
expm1(x) | значение функции e x − 1 |
fdim(x,y) | вычисление положительной разницы между x и y , fmax(x−y, 0) |
fma(x,y,z) | значение функции (x * y) + z (см. FMA) |
fmax(x,y) | наибольшее значение среди x и y |
fmin(x,y) | наименьшее значение среди x и y |
hypot(x,y) | гипотенуза, sqrt(x² + y²) |
ilogb | экспонента числа с плавающей точкой, конвертированная в int |
lgamma | натуральный логарифм абсолютного значения гамма-функции |
llrint | округление до ближайшего целого (возвращает long long ) |
lrint | округление до ближайшего целого (возвращает long ) |
llround | округление до ближайшего целого в направлении от нуля (возвращает long long ) |
lround | округление до ближайшего целого в направлении от нуля (возвращает long ) |
log1p(x) | натуральный логарифм 1 + x |
log2 | логарифм по основанию 2 |
logb | целочисленная часть логарифма x по основанию 2 |
nan(s) | возвращает нечисловое значение ‘Not a Number’ |
nearbyint | округление аргумента до целого значения в формате числа с плавающей точкой |
nextafter(x,y) | следующий ближайшее представимое для x (по направлению к y) |
nexttoward(x,y) | то же, что и nextafter , но y имеет тип long double |
remainder(x,y) | вычисляет остаток от деления согласно стандарту IEC 60559 |
remquo(x,y,p) | то же, что и remainder , но сохраняет коэффициент по указателю p (как int ) |
rint | округление до целого (возвращает int ) с вызовом ошибки inexact , если результат отличается от аргумента. |
round | округление до целого (возвращает double ) |
scalbln(x,n) | x * FLT_RADIX n (n is long ) |
scalbn(x,n) | x * FLT_RADIX n (n is int ) |
tgamma | гамма-функция |
trunc | отбрасывание дробной части |
Расширения XSI [ править | править код ]
Эти функции не описаны в стандартах ANSI или ISO C, но могут присутствовать в системах в качестве расширений X/Open.
Имя | Описание |
---|---|
j0(x) | значение функций Бесселя первого рода порядков 0 для аргумента x |
j1(x) | значение функций Бесселя первого рода порядков 1 для аргумента x |
jn(n,x) | значение функций Бесселя первого рода порядка n |
scalb(x,y) | x * FLT_RADIX y (x и y типа double ) |
y0(x) | значение функций Бесселя второго рода порядков 0 для аргумента x |
y1(x) | значение функций Бесселя второго рода порядков 1 для аргумента x |
yn(n,x) | значение функций Бесселя второго рода порядка n |
Использование функций конвертации double -string ecvt , fcvt и gcvt не рекомендуется в пользу sprintf .
libm [ править | править код ]
Под Linux и FreeBSD математические функции (объявленные в math.h ) хранятся отдельно в математической библиотеке libm . Таким образом, если любая из этих инструкций используется, при сборке компоновщику должна быть передана опция -lm .
Существует несколько реализаций libm , включая:
- GNU libc’s libm
- Sun’s FDLIBM, которая была использована как основа для FreeBSD’s msun, которая, в свою очередь, является основой Julia’s OpenLibm
- Arénaire project’s CRlibm (Correctly Rounded mathematical library)
- AMD’s libm
Функция log() возвращает натуральный логарифм числа num. Если число num является отрицательным, то возникает ошибка области определения, а если аргумент равен нулю, то возникает ошибка области значений.
logl() представляет собой версию функции для данных типа long double.
All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
log, logf, logl – расчет натурального логарифма.
double log (double x);
float logf (float x);
long double logl (long double x);
x – число, натуральный логарифм которого требуется рассчитать
Натуральный логарифм числа x.
Если, число х=0, то возвращается минус бесконечность (-inf), а переменной errno присваивается код ошибки ERANGE.
Если число x отрицательное, то возвращается признак nan, а переменной errno присваивается код ошибки EDOM.
Функции рассчитывают натуральный логарифм числа x.
Причем в функции logf аргумент для расчета и возвращаемое значение задаются числами с плавающей точкой (тип float, точность не менее шести значащих десятичных цифр, разрядность — 32).
В функции log аргумент и возвращаемое значение задаются числами с плавающей точкой двойной точности (тип double, точность не менее десяти значащих десятичных цифр, разрядность — 64).
В функции logl аргумент и возвращаемое значение задаются числами с плавающей точкой повышенной точности (тип long double, точность не менее десяти значащих десятичных цифр, разрядность — 80).
В примере рассчитывается натуральный логарифм от 4.56 с помощью функций logf, log и logl. Результаты работы функций logf, log и logl различаются точностью.
Аргумент:
logf : 1.51732265949249267578
log : 1.51732262352629465596
logl : 1.51732262352629462593