Assume there is a random 3D vector (U). We can construct a tensor of rank K by following outer product
Tk = U @ U @ ... @ U [k times]
Where @ represents outer or tensor product. Then we can combine different combinations of these tensors and contract them to provide a scalar.
For example,
T0 = 1 (scalar)
T1 = U (tensor of rank 1 = vector)
T2 = U @ U (tensor of rank 2 = matrix)
T3 = U @ U @ U (tensor of rank 3)
...
Since T1 is a vector, we can dot product T1 with T1 and generate an scalar.
I want to generate all independent scalars which can be obtained by contraction of these tensors. For example:
T0
T1 . T1
T0 * T0
T1 . T1 * T0
T2 : T2
T2 : T2 * T0
...
I think the problem can be divided into 2 parts: 1) Finding set of tensors which can contract to scalar. 2) Find all contractions for a single set.
The challenge is that there are many ways for contracting the tensors and not clear which ones are equivalent. We can make the problem finite by limiting number of tensors since we can always multiply by T0 and still have an scalar.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…