# Software

An initial prototype for benchmarking arbitrary Model Order Reduction (MOR) problems and algorithms in MATLAB. Currently only works for linear time-invariant first-order systems (LTI-FOS). Part of the Mathematical Research Data Initiative (MaRDI).

A MATLAB toolbox for computing the Fréchet derivative of the tensor t-function. Third-order tensors are encoded as structs, with fields storing the dimensions and the unfolded tensor configuration. As opposed to built-in multidimensional arrays in MATLAB, our "tensor structs" allow for sparse storage and operations. The syntax is built off LowSyncBlockArnoldi and bfomfom and allows for general matrix-function solver configurations, e.g., choice of underlying inner product, norm, (block) Arnoldi implementation, etc.

A light-weight MATLAB package for prototyping low-synchronization block Arnoldi methods with generalized inner products. The primary aim of this project is to benchmark speed, accuracy, and stability of multiple configurations of such methods. There are four main axes required to specify an algorithm configuration:

inner product: choice of block inner product

skeleton: the inter-orthongalization routine applied between block vectors

muscle: the intra-orthogonalization routine applied to an individual block vector

modification: whether to use vanilla FOM (Full Orthogonalization Method), or a modified version, like GMRES.

Associated work:

Kathryn Lund. Adaptively restarted block Krylov subspace methods with low-synchronization skeletons. Numerical Algorithms, 2022.

A lean MATLAB package for exploring stability properties of block Gram-Schmidt variations.

Associated work:

Erin Carson, Kathryn Lund, Miroslav Rozložník, and Stephan Thomas: Block Gram-Schmidt algorithms and their stability properties, Linear Algebra and its Applications, Vol. 628, pp. 150-195, 2021.

Erin Carson, Kathryn Lund, and Miroslav Rozložník: The stability of block variants of classical Gram-Schmidt. SIAM Journal on Matrix Analysis and Applications, 42(3), pp. 1365--1380, 2021.

This repository contains the MATLAB code written for

Daniel Kressner, Kathryn Lund, Stefano Massei, and Davide Palitta. Compress-and-restart block Krylov subspace methods for Sylvester matrix equations. Numerical Linear Algebra with Applications. 28(1), e2339, 2021.

The syntax is based off B(FOM)^2, and the scripts allow one to reproduce the same results shown in the paper.

Written in MATLAB and used in my thesis and the following papers:

Andreas Frommer, Kathryn Lund, and Daniel B. Szyld, Block Krylov subspace methods for functions of matrices II: Modified block FOM, SIAM Journal on Matrix Analysis and Applications, 41(2), pp. 804--837, 2020. Data matrices on Zenodo.

Kathryn Lund, The tensor t-function: a definition for functions of third-order tensors, Numerical Linear Algebra with Applications, 27 (3), e2288, 2020. Data matrices on Zenodo.

Andreas Frommer, Kathryn Lund, and Daniel B. Szyld, Block Krylov subspace methods for functions of matrices, Electronic Transactions on Numerical Analysis, Vol. 47, pp. 100--126, 2017. Data matrices on Zenodo.

The package comprises implementations of the classical, global, loop-interchange, and hybrid BFOM and B(FOM)^2, written in a modular fashion so that users can easily switch between choices of block inner products and scaling quotients. It also contains thorough documentation and the scripts to generate the examples in the papers. All data matrices have been moved to Zenodo, and the code contains scripts to download them automatically.