Все математические функции Arduino

Внимание! Полный урок по математическим операциям находится вот здесь.

Приспичило в проекте использовать логарифм, полез читать – наткнулся на полный список математических функций, которые встроены в Arduino (файл math.h). Привожу его здесь с переводом на русский, пользуйтесь!
Примечание: double это тип данных для чисел с плавающей точкой, занимает 8 байт. float – то же самое, но 4 байта. Arduino поддерживает только 4 байтные числа, т.е. для неё double == float. Соответственно некоторые функции из таблицы ниже получаются “дублирующие” при использовании на Arduino.

Константы

КонстантаРезультатОписание
M_E2.718281828Число e
M_LOG2E1.442695041log_2 e
M_LOG10E0.434294482log_10 e
M_LN20.693147181log_e 2
M_LN102.302585093log_e 10
M_PI3.141592654pi
M_PI_21.570796327pi/2
M_PI_40.785398163pi/4
M_1_PI0.3183098861/pi
M_2_PI0.6366197722/pi
M_2_SQRTPI1.1283791672/корень(pi)
M_SQRT21.414213562корень(2)
M_SQRT1_20.7071067811/корень(2)
NAN__builtin_nan(“”)nan
INFINITY__builtin_inf()infinity

Функции

ФункцияОписание
cos (double x)Косинус (радианы)
sin (double x)Синус (радианы)
tan (double x)Тангенс (радианы)
fabs (double x)Модуль для float чисел
fmod (double x, double y)Остаток деления x на у для float
modf (double x, double *iptr)Возвращает дробную часть, целую хранит по адресу iptr http://cppstudio.com/post/1137/
modff (float x, float *iptr)То же самое, но для float
sqrt (double x)Корень квадратный
sqrtf (float)Корень квадратный для float чисел
cbrt (double x)Кубический корень
hypot (double x, double y)Гипотенуза ( корень(x*x + y*y) )
square (double x)Квадрат ( x*x )
floor (double x)Округление до целого вниз
ceil (double x)Округление до целого вверх
frexp (double x, int *pexp)http://cppstudio.com/post/1121/
ldexp (double x, int exp)x*2^exp http://cppstudio.com/post/1125/
exp (double x)Экспонента (e^x)
cosh (double x)Косинус гиперболический (радианы)
sinh (double x)Синус гиперболический (радианы)
tanh (double x)Тангенс гиперболический (радианы)
acos (double x)Арккосинус (радианы)
asin (double x)Арксинус (радианы)
atan (double x)Арктангенс (радианы)
atan2 (double y, double x)Арктангенс (y / x) (позволяет найти квадрант, в котором находится точка)
log (double x)Натуральный логарифм х ( ln(x) )
log10 (double x)Десятичный логарифм x ( log_10 x)
pow (double x, double y)Степень ( x^y )
isnan (double x)Проверка на nan (1 да, 0 нет)
isinf (double x)Возвр. 1 если x +бесконечность, 0 если нет
isfinite (double x)Возвращает ненулевое значение только в том случае, если аргумент имеет конечное значение
copysign (double x, double y)Возвращает x со знаком y (знак имеется в виду + -)
signbit (double x)Возвращает ненулевое значение только в том случае, если _X имеет отрицательное значение
fdim (double x, double y)Возвращает разницу между x и y, если x больше y, в противном случае 0
fma (double x, double y, double z)Возвращает x*y + z
fmax (double x, double y)Возвращает большее из чисел
fmin (double x, double y)Возвращает меньшее из чисел
trunc (double x)Возвращает целую часть числа с дробной точкой
round (double x)Математическое округление
lround (double x)Математическое округление (для больших чисел)
lrint (double x)Округляет указанное значение с плавающей запятой до ближайшего целого значения, используя текущий режим округления и направление

Что есть ещё

Далее уже от самих разработчиков Arduino есть ещё маленький пакетик удобных макро-функций!

МакроЗначение
min(a,b)Возвращает меньшее из чисел
max(a,b)Возвращает большее из чисел
abs(x)Модуль числа
constrain(value,min,max)Ограничить диапазон числа value до min и max
map(val, fromMin, fromMax, toMin, toMax)Перевести диапазон числа value от (fromMin, fromMax) в (toMin, toMax)
round(x)Математическое округление
radians(deg)Перевод градусов в радианы
degrees(rad)Перевод радиан в градусы
sq(x)Квадрат числа
PIПи
HALF_PIпол Пи
TWO_PIдваПи
DEG_TO_RADКонстанта перевода град в рад 0.01745329
RAD_TO_DEGКонстанта перевода рад в град 57.2957786
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии