Math.h
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 |
логарифм по основанию 10 |
modf(x,p) |
извлекает целую и дробную части (с учетом знака) из числа с плавающей точкой |
pow(x,y) |
результат возведения x в степень y, xy |
round
|
математическое округление |
sin |
синус |
sinh |
гиперболический синус |
sqrt |
квадратный корень |
tan |
тангенс |
tanh |
гиперболический тангенс |
Функции стандарта C++
| Имя | Описание |
|---|---|
acosh |
гиперболический ареакосинус |
asinh |
гиперболический ареасинус |
atanh |
гиперболический ареатангенс |
cbrt |
кубический корень |
copysign(x,y) |
возвращает величину, абсолютное значение которой равно x, но знак которой соответствует знаку y |
erf |
функция ошибок |
erfc |
дополнительная функция ошибок |
exp2(x) |
значение числа 2, возведённого в степень x, 2x |
expm1(x) |
значение функции ex − 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_RADIXn (n is long)
|
scalbn(x,n) |
x * FLT_RADIXn (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_RADIXy (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
Ссылки
math.h— основные определения, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)- Справка по функциям math.h
- Математическая библиотека libm (рус.)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.