Julia wrapper of the PROPACK sparse SVD library
Author JuliaSmoothOptimizers
14 Stars
Updated Last
1 Year Ago
Started In
September 2016


Documentation Linux/macOS/Windows/FreeBSD Coverage DOI
docs-stable docs-dev build-gh build-cirrus codecov doi

A Julia interface to PROPACK, a library for the computation of the truncated singular value decomposition of real (Float32, Float64) and complex (ComplexF32, ComplexF64) matrices or linear operators. PROPACK only requires operator-vector products to estimate singular values and singular vectors.


Larsen Rasmus M. (1998). Lanczos bidiagonalization with partial reorthogonalization. Department of Computer Science, Aarhus University, Technical report, DAIMI PB-357.

How to Cite

If you use PROPACK.jl in your work, please cite using the format given in CITATION.bib.

How to Install

julia> ]
pkg> add PROPACK
pkg> test PROPACK

Version 0.5.0 of PROPACK.jl requires at least Julia 1.8.


Compute leading singular triplets

U, s, V, bnd, nprod, ntprod = tsvd(A, k=3)  # 3 largest singular values and their singular vectors

Compute leading singular values only

s, bnd, nprod, ntprod = tsvdvals(A, k=3)

Compute smallest singular triplets

Make sure A is square or short and wide to avoid the trailing zero singular values:

U, s, V, bnd, nprod, ntprod = tsvd_irl(A, k=2)

Compute smallest singular values

s, bnd, nprod, ntprod = tsvdvals_irl(A, k=2)

Bug reports and discussions

If you think you found a bug, feel free to open an issue. Focused suggestions and requests can also be opened as issues. Before opening a pull request, start an issue or a discussion on the topic, please.

If you want to ask a question not suited for a bug report, feel free to start a discussion here. This forum is for general discussion about this repository and the JuliaSmoothOptimizers organization, so questions about any of our packages are welcome.

Used By Packages

No packages found.