BIRSVD - Bi-Iterative Regularized Singular Value Decomposition


BIRSVD is a MATLAB based software to compute the regularized low rank approximation of large weighted data sets. For regularization BIRSVD use a priori information that the low rank approximants are smooth. BIRSVD is an appropriate choice whenever such a priori information is available. BIRSVD is fast, i.e., the number of flops per iteration is of the order of the number of data points, and memory usage is negligible compared with the input data storage. Details about the method and experimental results are available in the manuscript If you prepare publications based on programs using this software, please cite this paper (or its published version, once published).


The software is available for download as a tarball. The software is compatible with MATLAB version 7 or higher. No toolbox is required.

The software contains MATLAB source code of the BIRSVD algorithm as well as drivers for demonstration. Two test data sets are also available within this software package.


Unpack the tarball, add the location of BIRSVD in the MATLAB path, and it is ready to use.

Calling Sequence

[U, S, V] = BIRSVD(A, W, rnk, param_in)

returns component of a low rank (rnk) approximation [U, S, V] of an weighted data set A accompanied with a weight matrix W. The solution is regularized using a priori information that the approximants (i.e. columns of U and V) are smooth.

Within MATLAB use:

">> help BIRSVD"

for further details on usage.

For generating default parameters, call BIRSVD without any input argument.


This software is written by Saptarshi Das and Arnold Neumaier, without any guarantee of perfomance (though it is likely to perform very well). For queries or bug reports, contact

Global (and Local) Optimization
Statistics Links
Mathematical Software

my home page (

Arnold Neumaier (