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 units = {[0]='', 'k', 'M', 'G'}
|
||||
local unit = 0
|
||||
|
||||
local pow = math.floor(math.log(math.max(math.abs(bits), 1)) / math.log(1000))
|
||||
local known_pow = math.min(pow, #units)
|
||||
for i = 1, #units do
|
||||
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', significand, units[known_pow])
|
||||
return string.format('%g %sbit', bits, units[unit])
|
||||
end
|
||||
|
||||
local function statistics(key, format)
|
||||
|
Loading…
Reference in New Issue
Block a user