math.h

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Квадратний корінь з

Посилання

  • math(3): Mathematical Functions  сторінка довідки man про бібліотечні функції GNU/Linux (англ.)
  1. | Опис функції cos(англ.)
  2. | math.h у стандарті POSIXангл. (англ.)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.