The Matrix type overloads all basic arithmetic operations: addition, subtraction,
multiplication, division - along with the possibility of getting negative and index
in/of given matrix. Matrix also provides fancy methods for e.g. getting and setting elements.
The Vector type overloads all basic arithmetic operations: addition, subtraction,
multiplication, division - along with the possibility of getting negative and index
in/of given vector.