General tensor product is a binary multiplication operation that can contain the following 3 types of indices:
- fused indices that appear in each argument and in the result
- contracted indices that appear in each argument but not in the result
- free indices that appear once on the RHS; clearly, free indices also appear in the result
For example, consider the following product:
c("i,j,k") = a("i,j,o") * b("k,j,o")
Index j is fused, index o is contracted, and indices i and k are free.
N.B. Here we exclude the cases where duplicate indices appear in one of the arguments. Products involving such operations can be composed efficiently from unary add reductions (i.e., traces), thus will not be considered here. We only consider general products that are irreducible parts of an efficient computational basis.
Currently TA supports 2 types of tensor products:
Hadamard product, in which all indices are fused; e.g., c("i,j") = a("i,j") * b("j,i"), and
- covariant contraction that involves zero or more contracted and one or more free indices; e.g.,
c("i,j") = a("i,k") * b("j,k") (the covariant contraction where no free indices appear is efficiently implemented as a binary multiply-add reduction)
The purpose of this issue is to track implementation of support for general tensor products.
General tensor product is a binary multiplication operation that can contain the following 3 types of indices:
For example, consider the following product:
Index
jis fused, indexois contracted, and indicesiandkare free.N.B. Here we exclude the cases where duplicate indices appear in one of the arguments. Products involving such operations can be composed efficiently from unary add reductions (i.e., traces), thus will not be considered here. We only consider general products that are irreducible parts of an efficient computational basis.
Currently TA supports 2 types of tensor products:
Hadamardproduct, in which all indices are fused; e.g.,c("i,j") = a("i,j") * b("j,i"), andc("i,j") = a("i,k") * b("j,k")(the covariant contraction where no free indices appear is efficiently implemented as a binary multiply-add reduction)The purpose of this issue is to track implementation of support for general tensor products.