Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
87 lines
1.6 KiB
Lua
87 lines
1.6 KiB
Lua
local stat = {}
|
|
|
|
---Calculate mean
|
|
---@param t number[] @double
|
|
---@return number @double
|
|
stat.mean = function(t)
|
|
local sum = 0
|
|
local count = 0
|
|
|
|
for _, v in pairs(t) do
|
|
if type(v) == "number" then
|
|
sum = sum + v
|
|
count = count + 1
|
|
end
|
|
end
|
|
|
|
return (sum / count)
|
|
end
|
|
|
|
-- Get the median of a table.
|
|
---@param t number[]
|
|
---@return number
|
|
stat.median = function(t)
|
|
local temp = {}
|
|
|
|
-- deep copy table so that when we sort it, the original is unchanged
|
|
-- also weed out any non numbers
|
|
for _, v in pairs(t) do
|
|
if type(v) == "number" then
|
|
table.insert(temp, v)
|
|
end
|
|
end
|
|
|
|
table.sort(temp)
|
|
|
|
-- If we have an even number of table elements or odd.
|
|
if math.fmod(#temp, 2) == 0 then
|
|
-- return mean value of middle two elements
|
|
return (temp[#temp / 2] + temp[(#temp / 2) + 1]) / 2
|
|
else
|
|
-- return middle element
|
|
return temp[math.ceil(#temp / 2)]
|
|
end
|
|
end
|
|
|
|
--- Get the standard deviation of a table
|
|
---@param t number[]
|
|
stat.std_dev = function(t)
|
|
local m, vm, result
|
|
local sum = 0
|
|
local count = 0
|
|
|
|
m = stat.mean(t)
|
|
|
|
for _, v in pairs(t) do
|
|
if type(v) == "number" then
|
|
vm = v - m
|
|
sum = sum + (vm * vm)
|
|
count = count + 1
|
|
end
|
|
end
|
|
|
|
result = math.sqrt(sum / (count - 1))
|
|
|
|
return result
|
|
end
|
|
|
|
---Get the max and min for a table
|
|
---@param t number[]
|
|
---@return number
|
|
---@return number
|
|
stat.maxmin = function(t)
|
|
local max = -math.huge
|
|
local min = math.huge
|
|
|
|
for _, v in pairs(t) do
|
|
if type(v) == "number" then
|
|
max = math.max(max, v)
|
|
min = math.min(min, v)
|
|
end
|
|
end
|
|
|
|
return max, min
|
|
end
|
|
|
|
return stat
|