A Hybrid Algorithm for Computing a Partial Singular Value Decomposition Satisfying a Given Threshold
James Baglama, Jonathan A. Chávez Casillas, Vasilije Perović
TL;DR
The paper introduces a robust hybrid algorithm for computing all singular triplets with singular values above a user-specified threshold, avoiding full SVDs and explicit matrix C constructions. It combines a Golub–Kahan–Lanczos bidiagonalization-based psvd method with an explicit deflation strategy and a block SVD power refinement (blksvdpwr) to preserve one-sided GKLB structure and orthogonality, enabling the retrieval of an unknown number of singular triplets above the threshold. Implementations in MATLAB/Octave and R (svtsvds.m, svtirlba.m, svtirlba.R) wrap standard psvd routines, providing flexible threshold or energy-based stopping criteria and ensuring compatibility for integration into larger numerical workflows, such as matrix completion and image compression. Empirical results show substantial performance gains over existing thresholding approaches, robust handling of multiple interior singular values, and strong reproducibility across diverse problem instances, with public code available on GitHub for broad use.
Abstract
In this paper, we describe a new hybrid algorithm for computing all singular triplets above a given threshold and provide its implementation in MATLAB/Octave and R. The high performance of our codes and ease at which they can be used, either independently or within a larger numerical scheme, are illustrated through several numerical examples with applications to matrix completion and image compression. Well-documented MATLAB and R codes are provided for public use.
