# Matrix

The object Matrix defines matrices, i.e. tables of tables, and defines the standard lua math operations (+,-,*,/,^) among other functionalities on them. When creating a table-table object in Lua one has to tell the language that this is supposed to be a matrix. This is done by setting the metatable MatrixMeta.

Example.Quanty
--This creates a table of tables
A = {{1,  14 },
{33, 4.7}}
B = {{3,  1.6 },
{5,  7}}
--This defines functionalities like addition or multiplication on M
setmetatable(A, MatrixMeta)
setmetatable(B, MatrixMeta)

print("")
print("A + B")
print(A + B)

print("")
print("A - B")
print(A - B)

print("")
print("A * B")
print(A * B)

--This is equivalent to A * Matrix.Inverse(B)
print("")
print("A / B")
print(A / B)

--This is equivalent to Matrix.Inverse(A)
print("")
print("1 / A")
print(1 / A)

print("")
print("A^2")
print(A^2)

A + B
{ { 4 , 15.6 } ,
{ 38 , 11.7 } }

A - B
{ { -2 , 12.4 } ,
{ 28 , -2.3 } }

A * B
{ { 73 , 99.6 } ,
{ 122.5 , 85.7 } }

A / B
{ { -4.8461538461538 , 3.1076923076923 } ,
{ 15.961538461538 , -2.9769230769231 } }

1 / A
{ { -0.010277717034769 , 0.030614476273781 } ,
{ 0.072162694073912 , -0.0021867483052701 } }

A^2
{ { 463 , 79.8 } ,
{ 188.1 , 484.09 } }