Учебники

Arduino — математическая библиотека

Библиотека Arduino Math (math.h) включает в себя ряд полезных математических функций для работы с числами с плавающей точкой.

Макросы библиотеки

Ниже приведены макросы, определенные в заголовке math.h —

+1,4426950408889634074

/ * log_2 e * /

+0,31830988618379067154

/ * 1 / пи * /

+0,63661977236758134308

/ * 2 / пи * /

+1,12837916709551257390

/ * 2 / sqrt (pi) * /

+2,30258509299404568402

/ * log_e 10 * /

+0,69314718055994530942

/ * log_e 2 * /

+0,43429448190325182765

/ * log_10 e * /

+3,14159265358979323846

/* число Пи */

3.3V1.57079632679489661923

/ * пи / 2 * /

+0,78539816339744830962

/ * пи / 4 * /

+0,70710678118654752440

/ * 1 / sqrt (2) * /

+1,41421356237309504880

/ * sqrt (2) * /

Функции библиотеки

Следующие функции определены в заголовке math.h

двойной акос (двойной __x)

Функция acos () вычисляет главное значение арккосинуса __x. Возвращаемое значение находится в диапазоне [0, pi] радиан. Ошибка домена возникает для аргументов, не входящих в диапазон [-1, +1].

двойной asin (двойной __x)

Функция asin () вычисляет главное значение арксинуса __x. Возвращаемое значение находится в диапазоне [-pi / 2, pi / 2] радиан. Ошибка домена возникает для аргументов, не входящих в диапазон [-1, +1].

двойной атан (двойной __x)

Функция atan () вычисляет главное значение арктангенса __x. Возвращаемое значение находится в диапазоне [-pi / 2, pi / 2] радиан.

двойной atan2 (двойной __y, двойной __x)

Функция atan2 () вычисляет главное значение арктангенса __y / __x, используя знаки обоих аргументов для определения квадранта возвращаемого значения. Возвращаемое значение находится в диапазоне [-pi, + pi] радиан.

двойной cbrt (двойной __x)

Функция cbrt () возвращает корень куба __x.

двойной потолок (двойной __x)

Функция ceil () возвращает наименьшее целочисленное значение, большее или равное __x, выраженное в виде числа с плавающей запятой.

статический двойной copysign (двойной __x, двойной __y)

Функция copysign () возвращает __x, но со знаком __y. Они работают, даже если __x или __y имеют значение NaN или ноль.

double cos (double __x)

Функция cos () возвращает косинус __x, измеренный в радианах.

двойной кош (двойной __x)

Функция cosh () возвращает гиперболический косинус __x.

двойной опыт (двойной __x)

Функция exp () возвращает экспоненциальное значение __x.

двойные fabs (двойной __x)

Функция fabs () вычисляет абсолютное значение числа с плавающей точкой __x.

двойной fdim (двойной __x, двойной __y)

Функция fdim () возвращает max (__ x — __y, 0). Если __x или __y или оба имеют значение NaN, возвращается NaN.

двойной этаж (двойной __x)

Функция floor () возвращает наибольшее целочисленное значение, меньшее или равное __x, выраженное в виде числа с плавающей запятой.

двойной fma (двойной __x, двойной __y, двойной __z)

Функция fma () выполняет умножение-сложение с плавающей точкой. Это операция (__x * __y) + __z, но промежуточный результат не округляется до целевого типа. Это иногда может улучшить точность расчета.

двойной fmax (двойной __x, двойной __y)

Функция fmax () возвращает большее из двух значений __x и __y. Если аргумент равен NaN, возвращается другой аргумент. Если оба аргумента являются NaN, NaN возвращается.

двойной фмин (двойной __x, двойной __y)

Функция fmin () возвращает меньшее из двух значений __x и __y. Если аргумент равен NaN, возвращается другой аргумент. Если оба аргумента являются NaN, NaN возвращается.

double fmod (double __x, double__y)

Функция fmod () возвращает остаток с плавающей точкой от __x / __y.

double frexp (double __x, int * __pexp)

Функция frexp () разбивает число с плавающей запятой на нормализованную дробь и целую степень 2. Она сохраняет целое число в объекте int, на который указывает __pexp. Если __x является нормальным числом с плавающей запятой, функция frexp () возвращает значение v, так что v имеет величину в интервале [1/2, 1) или ноль, а __x равно v умноженному на 2, возведенному в степень __pexp. Если __x равен нулю, обе части результата равны нулю. Если __x не является конечным числом, frexp () возвращает __x как есть и сохраняет 0 в __pexp.

Примечание. Эта реализация разрешает указатель нуля в качестве директивы, чтобы пропустить сохранение показателя степени.

двойной гипотет (двойной __x, двойной __y)

Функция hypot () возвращает sqrt (__x * __x + __y * __y). Это длина гипотенузы прямоугольного треугольника со сторонами длины __x и __y или расстояние от точки (__x, __y) до начала координат. Использование этой функции вместо прямой формулы целесообразно, поскольку ошибка намного меньше. Нет недостатка с маленькими __x и __y. Нет переполнения, если результат находится в диапазоне.

static int isfinite (double __x)

Функция isfinite () возвращает ненулевое значение, если __x конечно: не плюс или минус бесконечность и не NaN .

int isinf (двойной __x)

Функция isinf () возвращает 1, если аргумент __x является положительной бесконечностью, -1, если __x является отрицательной бесконечностью, и 0 в противном случае.

Примечание . GCC 4.3 может заменить эту функцию встроенным кодом, который возвращает значение 1 для обеих бесконечностей (ошибка gcc # 35509).

int isnan (двойной __x)

Функция isnan () возвращает 1, если аргумент __x представляет объект «не число» ( NaN ), иначе 0.

double ldexp (double __x, int __exp)

Функция ldexp () умножает число с плавающей запятой на целую степень 2. Она возвращает значение __x умноженное на 2, возведенное в степень __exp.

двойной журнал (двойной __x)

Функция log () возвращает натуральный логарифм аргумента __x.

двойной log10 (двойной __x)

Функция log10 () возвращает логарифм аргумента __x в основание 10.

длинный лринт (двойной __x)

Функция lrint () округляет __x до ближайшего целого, округляя полпути до четного целочисленного направления. (То есть 1,5 и 2,5 значения округляются до 2). Эта функция похожа на функцию rint (), но отличается по типу возвращаемого значения и тем, что возможно переполнение.

Возвращает

Округленное длинное целое значение. Если __x не является конечным числом или переполнением, эта реализация возвращает значение LONG_MIN (0x80000000).

длинная земля (двойная __x)

Функция lround () округляет __x до ближайшего целого числа, но округляет значения на полпути от нуля (вместо ближайшего четного целого). Эта функция похожа на функцию round (), но отличается по типу возвращаемого значения и тем, что возможно переполнение.

Возвращает

Округленное длинное целое значение. Если __x не является конечным числом или было переполнение, эта реализация возвращает значение LONG_MIN (0x80000000).

двойной модф (двойной __x, двойной * __iptr)

Функция modf () разбивает аргумент __x на целые и дробные части, каждая из которых имеет тот же знак, что и аргумент. Он хранит неотъемлемую часть как двойную в объекте, на который указывает __iptr.

Функция modf () возвращает дробную часть со знаком __x.

Примечание. Эта реализация пропускает запись по нулевому указателю. Однако GCC 4.3 может заменить эту функцию встроенным кодом, который не позволяет использовать NULL-адрес для избежания сохранения.

float modff (float __x, float * __iptr)

Псевдоним для modf ().

двойной пау (двойной __x, двойной __y)

Функция pow () возвращает значение __x показателю __y.

двойной раунд (двойной __x)

Функция round () округляет __x до ближайшего целого числа, но округляет полпути до нуля (вместо ближайшего четного целого). Переполнение невозможно.

Возвращает

Округленное значение. Если __x является целым или бесконечным, возвращается сам __x. Если __x равен NaN , то возвращается NaN .

int signbit (двойной __x)

Функция signbit () возвращает ненулевое значение, если значение __x имеет установленный знаковый бит. Это не то же самое, что __x <0.0, потому что с плавающей точкой IEEE 754 позволяет подписать ноль. Сравнение `-0.0 <0.0 ‘ложно, но` signbit (-0.0)’ вернет ненулевое значение.

двойной грех (двойной __x)

Функция sin () возвращает синус __x, измеренный в радианах.

двойной синх (двойной __x)

Функция sinh () возвращает гиперболический синус __x.

двойной квадрат (двойной __x)

Функция sqrt () возвращает неотрицательный квадратный корень из __x.

двойной квадрат (двойной __x)

Функция square () возвращает __x * __x.

Примечание. Эта функция не относится к стандартному определению языка Си.

двойной загар (двойной __x)

Функция tan () возвращает тангенс __x, измеренный в радианах.

двойной танх (двойной __x)

Функция tanh () возвращает гиперболический тангенс __x.

двойное усечение (двойное __x)

Функция trunc () округляет __x до ближайшего целого числа, не большего по абсолютной величине.

пример

В следующем примере показано, как использовать наиболее распространенные функции библиотеки math.h: