-
Notifications
You must be signed in to change notification settings - Fork 2
Numeric Tensor Algebra
LibNT and NTToolbox allow you to program directly in numeric tensor (NT) algebra. You may be thinking. What is numeric tensor (NT) algebra, and why should I care?
First, we assume you are familiar with matrix/vector (MV) algebra and computations, and also the need for technical computing frameworks. A woefully brief primer can be found here.
MV algebra allows you to express operations, like linear transforms, in an incredibly efficient and powerful manner, e.g., if we wrote out the following explicitly
it would have to be expressed with something like:
which basically means that we perform a dot product across every row of with every column of
. And this is in fact how matrix multiplication is performed and taught. More generally, the dot product is an example of summing across indices, which is called an inner product. In the case above, we perform an inner product across the columns and rows of
and
, respectively. The index
is used for this purpose. On the other hand, when we match every combination of two or more indices, this means we perform an outer product. Returning to the case above, we perform an outer product across the rows and columns of
and
, respectively. The indices
and
are used to express these outer products.
compactly can be used to express Notice how efficient the algebra is, it's understood that