gluon-status-page: avoid complex math
This code is usually running on an embedded CPU without FPU. In
addtition to its inefficience, the algorithm is also much harder to
understand.
Replace the logarithm formula with a simple loop.
(cherry picked from commit f2e0f7e3a8
)
This commit is contained in:
parent
b03e1e280e
commit
cc20271cb8
@ -66,12 +66,17 @@
|
|||||||
|
|
||||||
local function formatBits(bits)
|
local function formatBits(bits)
|
||||||
local units = {[0]='', 'k', 'M', 'G'}
|
local units = {[0]='', 'k', 'M', 'G'}
|
||||||
|
local unit = 0
|
||||||
|
|
||||||
local pow = math.floor(math.log(math.max(math.abs(bits), 1)) / math.log(1000))
|
for i = 1, #units do
|
||||||
local known_pow = math.min(pow, #units)
|
if math.abs(bits) < 1000 then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
unit = i
|
||||||
|
bits = bits / 1000
|
||||||
|
end
|
||||||
|
|
||||||
local significand = bits/(1000^known_pow)
|
return string.format('%g %sbit', bits, units[unit])
|
||||||
return string.format('%g %sbit', significand, units[known_pow])
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function statistics(key, format)
|
local function statistics(key, format)
|
||||||
|
Loading…
Reference in New Issue
Block a user