math.h — заголовочный файл стандартной библиотеки языка программирования С, разработанный для выполнения простых математических операций. Большинство функций привлекают использование чисел с плавающей точкой. C++ также реализует данные функции для обеспечения совместимости, все они содержатся в заголовочном файле cmath.

Все эти функции принимают double, если не определено иначе. Для работы с типами float и long double используются функции с постфиксами f и l соответственно. Все функции, принимающие или возвращающие угол, работают с радианами.

Базовые функции Имя Описаниеabs Возвращает абсолютную величину целого числаacos арккосинусasin арксинусatan арктангенсatan2 арктангенс с двумя параметрамиceil округление до ближайшего большего целого числаcos косинусcosh гиперболический косинусexp вычисление экспонентыfabs абсолютная величина (числа с плавающей точкой)floor округление до ближайшего меньшего целого числаfmod вычисление остатка от деления нацело для чисел с плавающей точкойfrexp разбивает число с плавающей точкой на мантиссу и показатель степени.ldexp умножение числа с плавающей точкой на целую степень двухlog натуральный логарифмlog10 логарифм по основанию 10modf(x,p) извлекает целую и дробную части (с учетом знака) из числа с плавающей точкойpow(x,y) результат возведения x в степень y, xyroundматематическое округлениеsin синусsinh гиперболический синусsqrt квадратный кореньtan тангенсtanh гиперболический тангенс

Функции стандарта C++ Имя Описаниеacosh гиперболический ареакосинусasinh гиперболический ареасинусatanh гиперболический ареатангенсcbrt кубический кореньcopysign(x,y) возвращает величину, абсолютное значение которой равно , но знак которой соответствует знаку erf функция ошибокerfc дополнительная функция ошибокexp2(x) значение числа 2, возведённого в степень , expm1(x) значение функции fdim(x,y) вычисление положительной разницы между и , fmax(x−y, 0)fma(x,y,z) значение функции (x * y) + z (см. FMA)fmax(x,y) наибольшее значение среди x и yfmin(x,y) наименьшее значение среди x и yhypot(x,y) гипотенуза, sqrt(x² + y²)ilogb экспонента числа с плавающей точкой, конвертированная в intlgamma натуральный логарифм абсолютного значения гамма-функцииllrint округление до ближайшего целого (возвращает long long)lrint округление до ближайшего целого (возвращает long)llround округление до ближайшего целого в направлении от нуля (возвращает long long)lround округление до ближайшего целого в направлении от нуля (возвращает long)log1p(x) натуральный логарифм 1 + xlog2 логарифм по основанию 2logb целочисленная часть логарифма x по основанию 2nan(s) возвращает нечисловое значение 'Not a Number'nearbyint округление аргумента до целого значения в формате числа с плавающей точкойnextafter(x,y) следующий ближайшее представимое для x (по направлению к y)nexttoward(x,y) то же, что и nextafter, но y имеет тип long doubleremainder(x,y) вычисляет остаток от деления согласно стандарту IEC 60559remquo(x,y,p) то же, что и remainder, но сохраняет коэффициент по указателю p (как int)rint округление до целого (возвращает int) с вызовом ошибки inexact, если результат отличается от аргумента.round округление до целого (возвращает double)scalbln(x,n) x * FLT_RADIXn (n is long)scalbn(x,n) x * FLT_RADIXn (n is int)tgamma гамма-функцияtrunc отбрасывание дробной части

Расширения XSI Эти функции не описаны в стандартах ANSI или ISO C, но могут присутствовать в системах в качестве расширений X/Open.

Имя Описаниеj0(x) значение функций Бесселя первого рода порядков 0 для аргумента xj1(x) значение функций Бесселя первого рода порядков 1 для аргумента xjn(n,x) значение функций Бесселя первого рода порядка nscalb(x,y) x * FLT_RADIXy (x и y типа double)y0(x) значение функций Бесселя второго рода порядков 0 для аргумента xy1(x) значение функций Бесселя второго рода порядков 1 для аргумента xyn(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

Ссылки

Справка по функциям math.h Математическая библиотека libm