ttl {DelayedTensor} | 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.

### See Also

`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))

[Package DelayedTensor version 1.0.0 Index]