Які математичні функції Lua підтримує прошивка NodeMCU

Відповідно до офіційної документації, з версії мови Lua, що входить до складу прошивки NodeMCU, з метою вивільнення об’єму пам’яті було взагалі вилучено модуль математичних функцій. В Lua за математичні функції відповідає бібліотека math.

Джерело: Lua Developer FAQ

Цитата: “The debug and math libraries have also been omitted to reduce the runtime footprint (modulo can be done via %, power via ^).”

Але це не зовсім так і насправді, до деяких математичних функцій є доступ.

Для того, щоб шановний читач не мусив сам розбиратися і тестувати, ми виклали всі наявні математичні функції Lua прошивки NodeMCU у одному тексті.

Спочатку перерахуємо функції з прикладами, котрі реалізовано, а потім наведемо загальну таблицю усіх функцій класичного модуля math, відповідно до Lua 5.1 Reference Manual.

Примітка. Зверніть увагу, що ми не наводимо у даному тексті стандартні для будь-якої мови математичні операції типу додавання чи віднімання – адже все це є в NodeMCU. Розглядаємо вбудовану бібліотеку math. та її математичні інструменти. Цю бібліотеку неможливо вимкнути під час створення прошивки засобами сайту nodemcu-build.com

Перелік наявних у прошивці NodeMCU з мовою програмування Lua функцій модуля Math.

ABS. Модуль числа

Повертає абсолютне значення x.

Синтаксис: math.abs (x)

Приклад:

CEIL. Округлення вгору

Повертає найменше ціле число, що перевищує або дорівнює x.

Синтаксис: math.ceil (x)

Приклад:

FLOOR. Округлення вниз

Повертає найбільше ціле число, менше або рівне х.

Синтаксис: math.floor (x)

Приклад:

HUGE. Нескінченно велике значення

Значення HUGE_VAL – значення, що перевищує або дорівнює будь-якому іншому числовому значенню.

Синтаксис: math.huge

Приклад:

MAX. Максимальне значення

Повертає максимальне значення серед аргументів.

Синтаксис: math.max (x, ···)

Приклад:

MIN. Мінімальне значення

Повертає мінімальне значення серед аргументів.

Синтаксис: math.min (x, ···)

Приклад:

PI. Число Пі

Значення числа Пі

Синтаксис: math.pi

Приклад:

POW. Піднесення числа у степінь

Повертає х в степені y. (Ви також можете використовувати вираз x ^ y для обчислення цього значення.)

Синтаксис: math.pow (x, y)

Приклад:

RANDOM. Псевдо-випадкове число

Ця функція є інтерфейсом до простого псевдовипадкового генератора rand, наданого ANSI C. (Ніяких гарантій щодо статистичних властивостей немає).

Синтаксис: math.random ([m [, n]])

Приклад:

RANDOMSEED. Початкове значення для псевдовипадкового генератора

Встановлює x як випадкове початкове значення – сід для псевдовипадкового генератора: однаковий сід дає однакові послідовності чисел.

Синтаксис: math.randomseed (x)

Приклад:

SQRT. Корінь квадратний

Повертає квадратний корінь x. (Ви можете також використовувати вираз x ^ 0,5 для обчислення цього значення.)

Синтаксис: math.sqrt (x)

Приклад:

Таблиця №1 Порівняння бібліотеки math Lua Reference Manual та NodeMCU embedded Lua

ФункціяLua 5.1 Reference ManualNodeMCU embedded Lua 5.1.4
ABSmath.abs (x)math.abs(x)
ACOSmath.acos (x)немає підтримки
ASINmath.asin (x)немає підтримки
ATANmath.atan (x)немає підтримки
CEILmath.ceil (x)math.ceil(x)
COSmath.cos (x)немає підтримки
DEGmath.deg (x)немає підтримки
EXPmath.exp (x)немає підтримки
FLOORmath.floor (x)math.floor(x)
FMODmath.fmod (x, y)немає підтримки
FREXPmath.frexp (x)немає підтримки
HUGEmath.hugemath.huge
LDEXPmath.ldexp (m, e)немає підтримки
LOGmath.log (x)немає підтримки
LOG10math.log10 (x)немає підтримки
MAXmath.max (x, ···)math.max(x, ···)
MINmath.min (x, ···)math.min(x, ···)
MODFmath.modf (x)немає підтримки
PImath.pimath.pi
POWmath.pow (x, y)math.pow(x, y)
RADmath.rad (x)немає підтримки
RANDOMmath.random ([m [, n]])math.random([m [, n]])
RANDOMSEEDmath.randomseed (x)math.randomseed (x)
SINmath.sin (x)немає підтримки
SQRTmath.sqrt (x)math.sqrt (x)
TANmath.tan (x)немає підтримки

Пам’ятайте, що для деяких функцій з Таблиці №1, котрі спільнота розробки NodeMCU свідомо вирішила не включати до складу прошивки, за потреби можливо розробити обхідні шляхи – застосовуючи математику.

Сподіваємося, що ця інформація є корисною для вас,

Бажаємо успіхів!

Підписуйтеся :

на нашу сторінку у Facebook

та канал у Youtube .