math.h — заголовний файл стандартної бібліотеки мови програмування С, який надає прототипи функцій, розроблених для виконання простих математичних операцій. Більшість функцій використовує числа з рухомою комою. C++ також реалізовує дані функції для забезпечення сумісності, усі вони містяться у заголовному файлі cmath
.
Усі функції, котрі приймають або повертають значення кута, працюють з радіанами.
В C99 більшість функцій має кілька варіантів залежно від типу, наприклад:
float cosf(float x);
double cos(double x);
long double cosl(long double x);
Всі ці функції обчислюють косинус, але з різними типами чисел з рухомою комою. Функції, що закінчуються на f, працюють з float, на l — з long double.
Також у C99 додана стандартна бібліотека tgmath.h, що містить узагальнені макроси, що мають такі самі назви, що й функція для double, і підставляють потрібну функцію залежно від типу.
В C++ ці функції перевантажені для різних типів. Також існують перевантаження цих функцій в бібліотеках complex.h та valarray для відповідних типів.[1]
Функції
Тригонометричні функції
Ім'я |
Опис
|
double acos(double x) |
арккосинус. Якщо параметр не в інтервалі [-1..+1], виникає помилка
|
double asin(double x) |
арксинус. Якщо параметр не в інтервалі [-1..+1], виникає помилка
|
double atan(double x) |
арктангенс
|
double atan2(double y, double x) |
арктангенс частки від ділення двох аргументів y та x. Якщо обидва параметри дорівнюють 0, виникає помилка. На відміну від atan, може обчислити значення кута (для якого значення тангенса буде нескінченим). Зручна для обчислення кута за координатами.
|
double cos(double x) |
косинус
|
double sin(double x) |
синус
|
double tan(double x) |
тангенс
|
Гіперболічні тригонометричні функції
Показникові функції
Ім'я |
Стандарт |
Опис
|
double exp(double x) |
C89, C++98 |
Показникова функція з основою ( )
|
double ldexp(double x, int exp) |
C89, C++98 |
Обчислення числа з рухомою комою з мантиси та порядку, повертає
|
double exp2(double x) |
C99, C++11 |
Показникова функція з основою ( )
|
double expm1(double x) |
C99, C++11 |
Показникова функція з основою мінус 1 ( )
|
double scalbn(double x, int exp) |
C99, C++11 |
Обчислення числа з рухомою комою з мантиси та порядку для основи FLT_RADIX (float.h), повертає FLT_RADIX ; зазвичай еквівалент ldexp.
|
double scalbln(double x, long int exp) |
C99, C++11 |
Те саме, що й scalbn, з порядком типу long int.
|
Логарифмічні функції
Ім'я |
Стандарт |
Опис
|
double log(double x) |
C89, C++98 |
Натуральний логарифм x
|
double log10(double x) |
C89, C++98 |
Логарифм за основою 10 від x
|
double frexp(double x, int* exp) |
C89, C++98 |
Розкладає число x на мантису з проміжку [0.5,1) та двійковий порядок, який записує за адресою exp.
|
double log2(double x) |
C99, C++11 |
Логарифм за основою 2 від x
|
double logb(double x) |
C99, C++11 |
Логарифм за основою FLT_RADIX (зазвичай 2) від x
|
double log1p(double x) |
C99, C++11 |
Натуральний логарифм від x+1
|
int ilogb(double x) |
C99, C++11 |
Ціла частина логарифму за основою FLT_RADIX
|
Інші функції
Константи
Ім'я |
Опис
|
NAN |
Не-число (not-a-number), особливе значення, що позначає результат помилкової операції
|
HUGE_VAL |
Особливе значення, що позначає, що результат надто великий для представлення обраним типом числа з рухомою комою
|
INFINITY (С++11) |
Нескінченість, особливе значення, що позначає нескінчений результат
|
HUGE_VALF (С++11) |
Аналог HUGE_VAL типу float
|
HUGE_VALL (С++11) |
Аналог HUGE_VAL типу long double
|
Стандарт POSIX вимагає визначення деяких додаткових констант[2], що починаються з M_. В gcc ці константи можна увімкнути ключем компіляції -std=gnu11 (gnu14, gnu17 і т. д.), у Visual Studio — визначенням макроса _USE_MATH_DEFINES перед включенням бібліотеки:
#define _USE_MATH_DEFINES
#include <cmath>
Ім'я |
Опис
|
M_E |
Основа натуральних логарифмів
|
M_LOG2E |
Логарифм за основою 2 ( )
|
M_LOG10E |
Логарифм за основою 10 ( )
|
M_LN2 |
Натуральний логарифм
|
M_LN10 |
Натуральний логарифм
|
M_PI |
Число
|
M_PI_2 |
|
M_PI_4 |
|
M_1_PI |
|
M_2_PI |
|
M_SQRTPI |
Квадратний корінь з
|
M_SQRT2 |
Квадратний корінь з
|
M_SQRT1_2 |
Квадратний корінь з
|
Примітки
Посилання
math(3)
: Mathematical Functions – сторінка довідки man про бібліотечні функції GNU/Linux (англ.)