/LowRankArithmetic.jl

Package for the propagation of representations of low-rank matrices through finite compositions of common operations.

Primary LanguageJuliaMIT LicenseMIT

logo  LowRankArithmetic.jl

Build Status Coverage

LowRankArithmetic.jl facilitates the propagation of low rank factorizations through finite composition of a range of common linear algebra operations such as

  • matrix-matrix/vector multiplication
  • addition
  • Hadamard products
  • elementwise integer powers
  • concatenation & slicing

Two types of low-rank representations are supported:

  1. Two-factor representation:

$$ \mathbb{R}^{n\times m} \ni X = UZ^\top \text{ where }U\in \mathbb{R}^{n\times r}, Z\in \mathbb{R}^{m\times r} $$

  1. SVD-like representation:

$$ \mathbb{R}^{n\times m} \ni X = USV^\top \text{ where } U\in \mathbb{R}^{n\times r}, S\in \mathbb{R}^{r\times r}, V\in \mathbb{R}^{m\times r} $$

Note, however, that neither U and V need to be orthogonal, nor are S and Z required to be diagonal or lower triangular as may be familiar from the standard QR and SVD factorizations. In particular, these properties are not maintained when a QR or SVD factorization is propagated through the supported arithmetic operations.

LowRankArithmetic.jl further supports efficient & robust svd-based rounding procedures to reduce the rank of a given low rank factorization. Also efficient Gram-Schmidt-, QR-, SVD-, and gradient flow-based reorthonormalization procedures for the U and V factors are available.

Acknowledgements

This work is supported by NSF Award PHY-2028125 "SWQU: Composable Next Generation Software Framework for Space Weather Data Assimilation and Uncertainty Quantification".