Package for the decomposition of tensors and polynomial-exponential series.


The package TensorDec.jlprovides tools for the following decomposition problems:

Symmetric tensor decomposition

For symmetric tensors or multivariate homogeneous polynomials $\sigma(\mathbf{x}) = \sum_{|\alpha|=d} \sigma_{\alpha} {d \choose \alpha} \mathbf{x}^{\alpha}$, we consider their Waring decomposition:

\[ \sigma(\mathbf{x}) = \sum_{i=1}^r \omega_i\, (\xi_{i,1} x_1+ \cdots + \xi_{i,n} x_n)^d\]

with rminimal.

Multilinear tensor decomposition

For multilinear tensors, $\sigma=(\sigma_{i,j,k})\in E_1 \otimes E_2 \otimes E_3$ we consider the decomposition:

\[ \sigma = \sum_{i=1}^r \omega_i\, U_i^1 \otimes U_i^2 \otimes U_i^3\]

with $U_i^j \in E_j$ vectors and r minimal.

Polynomial-exponential decomposition

For sequences $(\sigma_{\alpha})_{\alpha} \in \mathbb{K}^{\mathbb{N}^{n}}$ or series

\[\sigma(y) = \sum_{\alpha \in \mathbb{K}^{\mathbb{N}^{n}}} \sigma_{\alpha} \frac{y^{\alpha}}{\alpha!}\]

which can be decomposed as polynomial-exponential series

\[\sum_{i=1}^r \omega_i(y) e^{\xi_{i,1} y_1+ \cdots + \xi_{i,n} y_n}\]

with polynomials $\omega_{i}(y)$ and points $\xi_{i}= (\xi_{i,1}, \ldots, \xi_{i,n})\in \mathbb{K}^{n}$, we compute the weights $\omega_i$ and the frequencies $\xi_i$.

These types of decompositions appear in many problems (see Examples).

The package TensorDec provides functions to manipulate (truncated) series, to construct truncated Hankel matrices, and to compute such a decomposition from these Hankel matrices.


Functions and types


The package is available at https://gitlab.inria.fr/AlgebraicGeometricModeling/TensorDec.jl.

To install it from Julia:


It can then be used as follows:

using TensorDec

See the Examples for more details.


The package TensorDec depends on the following packages:

These packages will installed with TensorDec (see installation).