do function mat4mul(a11, a21, a31, a41,
a12, a22, a32, a42,
a13, a23, a33, a43,
a14, a24, a34, a44,
b11, b21, b31, b41,
b12, b22, b32, b42,
b13, b23, b33, b43,
b14, b24, b34, b44)
return a11*b11+a21*b12+a31*b13+a41*b14,
a11*b21+a21*b22+a31*b23+a41*b24,
a11*b31+a21*b32+a31*b33+a41*b34,
a11*b41+a21*b42+a31*b43+a41*b44,
a12*b11+a22*b12+a32*b13+a42*b14,
a12*b21+a22*b22+a32*b23+a42*b24,
a12*b31+a22*b32+a32*b33+a42*b34,
a12*b41+a22*b42+a32*b43+a42*b44,
a13*b11+a23*b12+a33*b13+a43*b14,
a13*b21+a23*b22+a33*b23+a43*b24,
a13*b31+a23*b32+a33*b33+a43*b34,
a13*b41+a23*b42+a33*b43+a43*b44,
a14*b11+a24*b12+a34*b13+a44*b14,
a14*b21+a24*b22+a34*b23+a44*b24,
a14*b31+a24*b32+a34*b33+a44*b34,
a14*b41+a24*b42+a34*b43+a44*b44
end
local a11, a21, a31, a41 = 1, 0, 0, 0
local a12, a22, a32, a42 = 0, 1, 0, 0
local a13, a23, a33, a43 = 0, 0, 1, 0
local a14, a24, a34, a44 = 0, 0, 0, 1
local b11, b21, b31, b41 = 0, 0, -1, 0
local b12, b22, b32, b42 = 0, 1, 0, 0
local b13, b23, b33, b43 = 1, 0, 0, 0
local b14, b24, b34, b44 = 0, 0, 0, 1
for i = 1, 1000 do
a11, a21, a31, a41,
a12, a22, a32, a42,
a13, a23, a33, a43,
a14, a24, a34, a44 = mat4mul(a11, a21, a31, a41,
a12, a22, a32, a42,
a13, a23, a33, a43,
a14, a24, a34, a44,
b11, b21, b31, b41,
b12, b22, b32, b42,
b13, b23, b33, b43,
b14, b24, b34, b44)
end
assert(a11 == 1)
assert(a31 == 0)
end