# Software Projects

In addition to the theoretical exploration of new mathematical methods for solving linear systems, matrix equations and problems in model order reduction or optimal control, we endeavor to create experimental as well as production implementations of our algorithms in software packages. The main focus is on the one hand to create reproducible results and on the other hand to make use of modern computer architectures and their programming models. Depending on the problem, we use one of the common programming languages in scientific computing. These range from C / C++ and MATLAB to Fortran and Python in our research group and include complex projects that include several of those languages.

## Discontinued Developments & Contributions

In system theory and control engineering the system Gramian matrices of linear input-output systems have wide-spread use, for example in: model reduction, decentralized control or sensitivity analysis. Empirical Gramians correspond to the linear system Gramians, but extend to parametric and nonlinear systems due to the purely data-driven computation. The empirical Gramian framework - emgr - is an open-source toolbox, compatible with OCTAVE and MATLAB, which enables the configurable computation of empirical system Gramians.

Beyond the computation of controllability, observability and minimality information on states, empirical Gramian matrices also allow the quantification of sensitivity and identifiability of parameters. Additionally, emgr provides low-rank computation, interfaces for integrators, inner products and kernels in a functional, vectorized and parallelizable implementation.

more
The hierarchical approximate proper orthogonal (HAPOD) decomposition enables the parallel (uniform, non-uniform, distributed) or memory-bound (embedded, single-board computer, compute-node) computation of PODs, for large or distributed data sets. The hapod function implements the distributed (star) and incremental (maximally unbalanced binary tree) topology variants of the HAPOD, and allows custom SVD (singular value decomposition) algorithms as backends. This compact POD tool is compatible with OCTAVE and MATLAB.

more
ROSTAPACK is a library implemented in MATLAB for computing or approximating robust stability measures, such as the H-infinity norm, of linear dynamical systems with input and output.

more
RRQR-MEX provides a MATLAB routine rrqr, implementing an interface to the FORTRAN RRQR codes by G. Quintana-Orti und C.H. Bischof.

THIS IS PROVIDED FOR REPRODUCIBILITY ONLY.

In recent Matlab on modern multicore CPUs we recommend qr(.,0) or svd based solutions. This is similarly robust, but usually much faster due to the lack of parallelism in the original Fortran codes.

more
THIS IS PROVIDED FOR REPRODUCIBILITY ONLY.

In recent Matlab on modern multicore CPUs we recommend qr(.,0) or svd based solutions. This is similarly robust, but usually much faster due to the lack of parallelism in the original Fortran codes.

PLiCMR is a library of routines for parallel model reduction of large-scale discrete or continuous linear time invariant systems represented using the state-space model. Three methods are available in PLiCMR: Balance & Truncate, Singular Perturbation Approximation, and Hankel-Norm Approximation. Future extensions will include Balanced Stochastic Truncation.

The Hamiltonian Eigenvalue Problem occurs in many areas of Systems and Control theory. One of the main applications is the solution of the algebraic Riccati equation. We collect a set of FORTRAN 77 and MATALB Codes to solve this Eigenvalue problem and as well as the Riccati Equation.

more
An implementation of the elliptic integral based (sub)optimal alternating directions implicit (ADI) shift parameters following the theory by Wachspress et. al.

more