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 для відповідних типів.
Функції
Тригонометричні функції Ім'я Опис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 Натуральний логарифм xdouble log10(double x) C89, C++98 Логарифм за основою 10 від xdouble frexp(double x, int* exp) C89, C++98 Розкладає число x на мантису з проміжку [0.5,1) та двійковий порядок, який записує за адресою exp.double log2(double x) C99, C++11 Логарифм за основою 2 від xdouble logb(double x) C99, C++11 Логарифм за основою FLT_RADIX (зазвичай 2) від xdouble log1p(double x) C99, C++11 Натуральний логарифм від x+1int ilogb(double x) C99, C++11 Ціла частина логарифму за основою FLT_RADIX
Інші функції Ім'я Описceil округлення до найближчого більшого цілого числаfabs абсолютне значенняfloor округлення до найближчого меншого цілого числаfmod повертає залишок від ділення двох чиселmodf(x, p) повертає цілу та дробову частину аргументу х зі знакомpow(x,y) вираховує значення xysqrt квадратний корінь
Константи
Ім'я Опис NAN Не-число (not-a-number), особливе значення, що позначає результат помилкової операції HUGE_VAL Особливе значення, що позначає, що результат надто великий для представлення обраним типом числа з рухомою комою INFINITY(С++11) Нескінченість, особливе значення, що позначає нескінчений результат HUGE_VALF(С++11) Аналог HUGE_VAL типу float HUGE_VALL(С++11) Аналог HUGE_VAL типу long double
Стандарт POSIX вимагає визначення деяких додаткових констант[ | math.h у стандарті POSIX], що починаються з 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 Квадратний корінь з
Примітки
Посилання