1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Add math.factorial (#8298)

This commit is contained in:
HybridDog 2019-03-05 10:11:21 +01:00 committed by Loïc Blot
parent 250420e566
commit a7c5dc50e5
2 changed files with 15 additions and 0 deletions

View file

@ -243,6 +243,20 @@ function math.sign(x, tolerance)
return 0
end
--------------------------------------------------------------------------------
function math.factorial(x)
assert(x % 1 == 0 and x >= 0, "factorial expects a non-negative integer")
if x >= 171 then
-- 171! is greater than the biggest double, no need to calculate
return math.huge
end
local v = 1
for k = 2, x do
v = v * k
end
return v
end
--------------------------------------------------------------------------------
function get_last_folder(text,count)
local parts = text:split(DIR_DELIM)