ttl: DelayedArray Times List In rikenbit/DelayedTensor: R package for sparse and out-of-core arithmetic and decomposition of Tensor

 ttl R Documentation

DelayedArray Times List

Description

Contracted (m-Mode) product between a Tensor of arbitrary number of modes and a list of matrices. The result is folded back into Tensor.

Usage

```ttl(darr, list_mat, ms=NULL)
```

Arguments

 `darr` DelayedArray object with K modes `list_mat` a list of 2D DelayedArray objects `ms` a vector of modes to contract on (order should match the order of `list_mat`)

Details

This function is an extension of the `ttl` by DelayedArray.

This is a wrapper function to `unfold`.

Performs `ttm` repeated for a single Tensor and a list of matrices on multiple modes. For instance, suppose we want to do multiply a Tensor object `darr` with three matrices `mat1`, `mat2`, `mat3` on modes 1, 2, and 3. We could do `ttm(ttm(ttm(darr,mat1,1),mat2,2),3)`, or we could do `ttl(darr,list(mat1,mat2,mat3),c(1,2,3))`. The order of the matrices in the list should obviously match the order of the modes. This is a common operation for various Tensor decompositions such as CP and Tucker. For the math on the m-Mode Product, see Kolda and Bader (2009).

Value

DelayedArray object with K modes (Tensor)

Note

The returned Tensor does not drop any modes equal to 1.

References

T. Kolda, B. Bader, "Tensor decomposition and applications". SIAM Applied Mathematics and Applications 2009.

`ttm`

Examples

```library("DelayedRandomArray")
darr <- RandomUnifArray(c(3,4,5))
dlizt <- list(
'darr1' = RandomUnifArray(c(10,3)),
'darr2' = RandomUnifArray(c(10,4)))
ttl(darr, dlizt, ms=c(1,2))
```

rikenbit/DelayedTensor documentation built on Jan. 30, 2023, 6:15 p.m.