dim: A vector specifying the dimensions for the multiplication.
Returns
An array, the result of the multiplication.
Details
Let A be a tensor with dimensions d1xd2x…xdp and let v be a vector of length di. Then the tensor-vector-product along the i-th dimension is defined as
It can hence be seen as a generalization of the matrix-vector product.
The tensor-vector-product along several dimensions between a tensor A
and multiple vectors v_1,...,v_k (k≤p) is defined as a series of consecutive tensor-vector-product along the different dimensions. For consistency, the multiplications are calculated from the dimension of the highest order to the lowest.
Examples
# create a three-mode tensora1 <- seq(0,1, length.out =10)a2 <- seq(-1,1, length.out =20)a3 <- seq(-pi, pi, length.out =15)A <-a1 %o% a2 %o% a3
dim(A)# multiply along different dimensionsdim(ttv(A = A, v = list(rnorm(10)), dim =1))dim(ttv(A = A, v = list(rnorm(20)), dim =2))dim(ttv(A = A, v = list(rnorm(15)), dim =3))# multiply along more than one dimensionlength(ttv(A = A, v = list(rnorm(10), rnorm(15)), dim = c(1,3)))
References
B. W. Bader and T. G. Kolda. Algorithm 862: MATLAB tensor classes for fast algorithm prototyping, ACM Transactions on Mathematical Software 32(4):635-653, December 2006.