mul.tensor: Tensor multiplication for the tensor class
Description
Performs a tensor multiplication like tensor(), but with named indices,
keeping dimnames, and vectorized.
Usage
mul.tensor(X,i=c(),Y,j=i,by=NULL)
Arguments
X
a tensor to be multiplied
i
numeric or character vector specifying the dimension to be
used in the multiplication for X
Y
a tensor to be multiplied
j
numeric or character vector specifying the dimension to be
used in the multiplication for Y
by
the by dimensions if present and not mentioned in i or j are
used as sequence dimensions. tensors in these dimensions are
processed in parallel. So in this dimension the product is neither
inner nor outer but parallel like a*b, rather than
a%*%b or a%o%b. Unmentioned dimensions get an
outer product. Mentioned dimensions an inner.
Value
The tensor product of X and Y with respect to the regarding
dimensions.
Details
Say $$X_{i_1\ldots i_n h_1 \ldots h_l}$$
and $$Y_{j_1\ldots j_n k_1 \ldots k_m}$$
the the result is:
$$E_{h_1\ldots h_l k_1 \ldots k_m}= \sum_{i_1,\ldots,i_n} X_{i_1\ldots i_n h_1 \ldots h_l}Y_{j_1\ldots j_n k_1 \ldots k_m}$$
This is an full outer product with i,j not given and a full inner product
product of i=dim(X)