Skip to content

Numeric Tensor Algebra

Adam Harrison edited this page Mar 4, 2017 · 3 revisions

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.

So, the two equations above express the same operation. But, notice how compactly MV algebra expresses the operation -- we implicitly know that we must sum across the rows of and the columns of . This is not all MV algebra does, but nonetheless this gives you a sense of its power, since it has a laser-like focus on expressing and manipulating linear transformations applied to vectors or series of vectors.

Clone this wiki locally