Implementations of the subspace power method and multi SPM, in MATLAB and Python, as described in the papers:
- J. Kileel, J. M. Pereira, Subspace power method for symmetric tensor decomposition, Numerical Algorithms, 2025. [preprint]
- K. Wang, J. M. Pereira, J. Kileel, A. Seigal, Multi-subspace power method for decomposing all tensors, ArXiv preprint, arXiv:2510.18627, 2025.
To install you just need to add the folders
MATLAB\ and MATLAB\helper_functions\ to the MATLAB path. Alternatively, you may run the file MATLAB\setup.m.
To reproduce all the results in Subspace power method for symmetric tensor decomposition, you must first
- download and install external packages;
- download the ICA dataset.
After these steps, run the file MATLAB\tests_spm_paper\run_SPM_paper_tests.m. This will generate the figures in the paper in the results folder. If you need assistance setting this up, feel free to open an issue or send an e-mail to jpereira@uga.edu.
To reproduce all the results in Multi-subspace power method for decomposing all tensors, you must first download and install Tensorlab (see below). After that, run the file MATLAB\tests_mspm_paper\run_MSPM_paper_tests.m. This will generate the figures in the paper in the results folder. If you need assistance setting this up, feel free to open an issue or send an e-mail to jpereira@uga.edu.
The following are required packages:
-
TensorLAB (SPM and MSPM papers)
-
Low rank Symmetric Tensor Approximations code (SPM paper)
-
GPCA-PDA (GPCA only)
-
GPCA-Voting (GPCA only)
To reproduce the ICA experiment in the SPM paper, you need to download the ICA dataset at
numpyscipy
numba: This package provides a just-in-time pre-compiler that can considerably speed up SPM performance. It is used only if the numba package is installed.
To install you just need to copy the python files, and from
SPM.py, import the method subspace_power_method.
Additional methods (such as generate_lowrank_tensor)
are also available which can be useful for testing SPM.