Higher-order SVD of a K-Tensor. Write the K-Tensor as a (m-mode) product of a core Tensor (possibly smaller modes) and K orthogonal factor matrices. Truncations can be specified via `ranks`

(making them smaller than the original modes of the K-Tensor will result in a truncation). For the mathematical details on HOSVD, consult Lathauwer et. al. (2000).

1 |

`tnsr` |
Tensor with K modes |

`ranks` |
a vector of desired modes in the output core tensor, default is |

A progress bar is included to help monitor operations on large tensors.

a list containing the following:

`Z`

core tensor with modes speficied by

`ranks`

`U`

a list of orthogonal matrices, one for each mode

`est`

estimate of

`tnsr`

after compression`fnorm_resid`

the Frobenius norm of the error

`fnorm(est-tnsr)`

- if there was no truncation, then this is on the order of mach_eps * fnorm.

The length of `ranks`

must match `tnsr@num_modes`

.

L. Lathauwer, B.Moor, J. Vanderwalle "A multilinear singular value decomposition". Journal of Matrix Analysis and Applications 2000.

`tucker`

1 2 3 4 5 | ```
tnsr <- rand_tensor(c(6,7,8))
hosvdD <-hosvd(tnsr)
hosvdD$fnorm_resid
hosvdD2 <-hosvd(tnsr,ranks=c(3,3,4))
hosvdD2$fnorm_resid
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.