The difference between a matrix and a 2d array of numbers is the operations that are performed
A tensor really isn’t standardized in the same way so it’s basically just an n-d array in my mind
It’s all just pointers with semantics attached.
Vectors with strides.
You can force a 2D array to be a matrix if you’re clever enough
good ol’ nominal typing
Everything’s a matrix if u fuck with it hard enough
Everything’s a matrix if you realize there is no spoon
Sadly, they patched the spoon exploit.
You can still use
movd
,movq
,movups
, etc.
A tensor is something that transform as a tensor. Gtfo Christoffel symbols.
Duck typing ftw
How you describe a thing is different from what a thing is… A tensor is not a matrix.
And on mathematics, “what a thing is” is a completely useless concept… So, it makes no difference whatsoever.
the “categorical” way of defining tensor products is essentially “that thing that lets you turn multi-linear maps into linear maps”, and linear maps (of finite dimensional vector spaces) are basically matrices anyways. so i don’t see it as much of a stretch to say tensors are matrices.
(can you tell that i never took a physics class?)
Square matrices are linear endomorphisms. They are isomorphic to (1,1) tensors but not any other rank of tensors.
a tensor is a multi-linear map V × … × V × V* × … × V* → F, and a multi-linear map V × … × V × V* × … × V* → F is the same as a linear map V ⊗ … ⊗ V ⊗ V* ⊗ … ⊗ V* → F. and a linear map is ““the same thing as”” a matrix. so in this way, you can associate matrices to tensors. (but the matrices are formed in the tensor space V ⊗ … ⊗ V ⊗ V* ⊗ … ⊗ V*, not in the vector space V.)