Math.h
Заголовні файли C |
---|
|
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 cosh(double x) | C89, C++98 | гіперболічний косинус |
double sinh(double x) | C89, C++98 | гіперболічний синус |
double tanh(double x) | C89, C++98 | гіперболічний тангенс |
double acosh(double x) | C99, C++11 | гіперболічний арккосинус |
double asinh(double x) | C99, C++11 | гіперболічний арксинус |
double atanh(double x) | C99, C++11 | гіперболічний арктангенс |
Показникові функції
Ім'я | Стандарт | Опис |
---|---|---|
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 |
Інші функції
Ім'я | Опис |
---|---|
ceil | округлення до найближчого більшого цілого числа |
fabs | абсолютне значення |
floor | округлення до найближчого меншого цілого числа |
fmod | повертає залишок від ділення двох чисел |
modf (x, p) | повертає цілу та дробову частину аргументу х зі знаком |
pow(x,y) | вираховує значення xy |
sqrt | квадратний корінь |
Константи
Ім'я | Опис |
---|---|
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 | Квадратний корінь з |
Посилання
![]() | Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |
- ↑ | Опис функції cos(англ.). Архів оригіналу за 20 вересня 2019. Процитовано 19 вересня 2019.
- ↑ [| math.h у стандарті POSIX[[англійська мова|англ.]] (англ.). Архів оригіналу за 17 вересня 2019. Процитовано 20 вересня 2019.
{{cite web}}
: Назва URL містить вбудоване вікіпосилання (довідка) | math.h у стандарті POSIXангл. (англ.)]