ref: 2c113af58d9f63bc4f720adbb6aa8ac2cae52781
dir: /bench/bigfactorial.myr/
use std
use testr
const main = {
testr.bench([
[.name="bigfactorial-1", .fn={ctx; bigfact(1)}],
[.name="bigfactorial-100", .fn={ctx; bigfact(100)}],
[.name="bigfactorial-1000", .fn={ctx; bigfact(1000)}],
[.name="bigfactorial-10000", .fn={ctx; bigfact(10000)}],
][:])
}
const bigfact = {n
var i
var x, y
if n == 0
x = std.mkbigint(1)
else
x = std.mkbigint(n)
for i = n-1; i > 0; i--
y = std.mkbigint(i)
std.bigmul(x, y)
std.bigfree(y)
;;
;;
-> x
}