-- bench_arith.lua — arithmetic and number crunching benchmark (Lua) local iterations = 2000000 local clock = os.clock local function bench_int_sum() local s = 0 for i = 0, iterations - 1 do s = s + i end return s end local function bench_int_mul_mod() local s = 0 for i = 1, iterations - 1 do s = s + (i * 7 % 1000) end return s end local function bench_float_arith() local s = 0.5 for i = 1, iterations - 1 do s = s + 1.0 / i end return s end local function bench_branch() local fizz, buzz, fizzbuzz = 0, 0, 0 for i = 1, iterations do if i % 15 == 0 then fizzbuzz = fizzbuzz + 1 elseif i % 3 == 0 then fizz = fizz + 1 elseif i % 5 == 0 then buzz = buzz + 1 end end return fizz + buzz + fizzbuzz end local function bench_nested() local s = 0 local outer, inner = 5000, 5000 for i = 0, outer - 1 do for j = 0, inner - 1 do s = s + 1 end end return s end local function run(name, fn) local start = clock() local result = fn() local elapsed = (clock() - start) * 1000 print(string.format(" %s: %.2f ms (result: %s)", name, elapsed, tostring(result))) end print("=== Arithmetic Benchmark ===") print(string.format(" iterations: %d", iterations)) run("int_sum ", bench_int_sum) run("int_mul_mod ", bench_int_mul_mod) run("float_arith ", bench_float_arith) run("branch ", bench_branch) run("nested_loop ", bench_nested)