Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Roblox
GitHub Repository: Roblox/luau
Path: blob/master/bench/tests/matrixmult.lua
2725 views
1
local function prequire(name) local success, result = pcall(require, name); return success and result end
2
local bench = script and require(script.Parent.bench_support) or prequire("bench_support") or require("../bench_support")
3
4
local function mmul(matrix1, matrix2)
5
local shapeRows = #matrix1
6
local shapeColumns = #matrix2[1]
7
local result = table.create(shapeRows)
8
for i = 1, shapeRows do
9
result[i] = table.create(shapeColumns)
10
for j = 1, shapeColumns do
11
local sum = 0
12
for k = 1, shapeColumns do
13
sum = sum + matrix1[i][k] * matrix2[k][j]
14
end
15
result[i][j] = sum
16
end
17
end
18
return result
19
end
20
21
function test()
22
local n = 100
23
24
local mat = table.create(n)
25
for i = 1, n do
26
local t = table.create(n)
27
for k = 1, n do
28
t[k] = math.random()
29
end
30
mat[i] = t
31
end
32
33
local startTime = os.clock()
34
35
local result = mmul(mat, mat)
36
37
return os.clock() - startTime
38
end
39
40
bench.runCode(test, "matrixmult")
41
42