Software /
code /
prosody
Diff
util/human/units.lua @ 10889:25e0ec11b4e4
util.human.units: Put math functions into locals
Primarily because the next commit will deal with math.log behaving
differently on Lua 5.1 and that's eaiser with locals.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 03 Jun 2020 20:16:00 +0200 |
parent | 10888:42a0d9089de9 |
child | 10890:a451f80d1cea |
line wrap: on
line diff
--- a/util/human/units.lua Wed Jun 03 19:46:17 2020 +0200 +++ b/util/human/units.lua Wed Jun 03 20:16:00 2020 +0200 @@ -1,3 +1,9 @@ +local math_abs = math.abs; +local math_ceil = math.ceil; +local math_floor = math.floor; +local math_log = math.log; +local math_max = math.max; +local math_min = math.min; local unpack = table.unpack or unpack; --luacheck: ignore 113 local large = { @@ -36,7 +42,7 @@ -- unit: string, the base unit -- b: optional enum 'b', thousands base local function format(n, unit, b) --> string - local round = math.floor; + local round = math_floor; local prefixes = large; local logbase = 1000; local fmt = "%.3g %s%s"; @@ -48,9 +54,9 @@ logbase = 1024; elseif n < 1 then prefixes = small; - round = math.ceil; + round = math_ceil; end - local m = math.max(0, math.min(8, round(math.abs(math.log(math.abs(n), logbase))))); + local m = math_max(0, math_min(8, round(math_abs(math_log(math_abs(n), logbase))))); local prefix, multiplier = unpack(prefixes, m * 2-1, m*2); return fmt:format(n / (multiplier or 1), prefix or "", unit); end