Peter Benner  Software
The software retrievable from this page is usually archived in tar files that are compressed with gzip. If you have any problems downloading or uncompressing the files, please click here.
Fortran 77
 [F8] HAPACK

Maintained and developed by
Peter Benner and Daniel
Kreßner.
HAPACK is an LAPACKstyle software package for Hamiltonian and skewHamiltonian matrices. It provides subroutines for computing eigenvalues, eigenvectors, and invariant subspaces of Hamiltonian and skewHamiltonian matrices, as well as structured Schur forms and several orthogonal symplectic factorizations of such matrices. Mex files and Matlab interfaces are vailable as well, see also Matlab software below.  [F7] PLiCMR

Maintained and developed by
Peter Benner, Enrique S. QuintanaOrtí, and Gregorio QuintanaOrtí
The Parallel Library in Control: Model Reduction (PLiCMR) package contains subroutines for model reduction of linear dynamical systems in statespace form on parallel distributed computers. Currently it contains routines for balanced truncation, singular perturbation approximation, optimal Hankel norm approximation, and stochastic balancing for stable systems using dense matrix algebra.
The parallelization model is based on the approach used in ScaLAPACK. Numerical computations are based on ScaLAPACK as far as possible and communication is performed using the Basic Linear Algebra Communication Subroutines (BLACS) on top of a communication library such as PVM or MPI.
The documentation of the library is available online in HTML format and the routines can be remotely executed on a Liunx cluster with 32 Pentium processors in Castellón via a web interface.
For more information on PLiCMR, consult
 Peter Benner, Enrique S. QuintanaOrtí, and Gregorio
QuintanaOrtí
PSLICOT Routines for Model Reduction of Stable LargeScale Systems
Proceedings of the Third NICONET Workshop on Numerical Software in Control Engineering,
LouvainlaNeuve, Belgium, January 19, 2001, pp. 3944. 
Peter Benner, Enrique S. QuintanaOrtí, and Gregorio
QuintanaOrtí
StateSpace Truncation Methods for Parallel Model Reduction of LargeScale Systems
Parallel Computing, Vol. 29 (special issue "Parallel and Distributed Scientific and Engineering Computing"), pp. 17011722, 2003.
which describes those routines of PLiCMR that have been integrated into the parallelized version of SLICOT, called PSLICOT.
 Peter Benner, Enrique S. QuintanaOrtí, and Gregorio
QuintanaOrtí
 [F6] SLICOT

The Subroutine Library in Control Theory (SLICOT) is developed
and maintained by
NICONET e.V. and is based on the results of the EU funded
thematic network NICONET (Numerics In
COntrol NETwork).
Click here to see
a list of all its former partners.
SLICOT provides Fortran 77 implementations of numerical algorithms for
computations in systems and control theory. Based on numerical linear
algebra routines from the
BLAS and
LAPACK
libraries, SLICOT provides methods for the design and analysis of
control systems. At present, SLICOT contains 175 usercallable
subroutines and 80 lowlevel subroutines.
SLICOT is organized in the following chapters:
 A : Analysis Routines
 B : Benchmark and Test Problems
 C : Adaptive Control
 D : Data Analysis
 F : Filtering
 I : Identification
 M : Mathematical routines
 N : Nonlinear Systems
 S : Synthesis Routines
 T : Transformation Routines
 U : Utility Routines
The documentation of SLICOT is available online. It contains complete descriptions of each available subroutine. To see a sample documentation of a routine (AB01MD.f), click here.
For more information on SLICOT, consult
Peter Benner, Volker Mehrmann, Vasile Sima, Sabine Van Huffel, and Andras Varga:
SLICOT  A Subroutine Library in Systems and Control Theory.
Applied and Computational Control, Signals, and Circuits, Vol. 1, pp. 499539, 1999.
The retrievable version appeared as NICONET Report 9703, Working Group on Software, June 1997.  [F5] PLiC

Maintained and developed by
Peter Benner, Enrique S. QuintanaOrtí, and Gregorio QuintanaOrtí
The Parallel Library in Control (PLiC) contains subroutines for solving problems arising from the analysis and design of largescale timeinvariant linear control systems in statespace form on parallel distributed computers. Currently it contains more than 30 usercallable subroutines for solving linear and quadratic matrix equations (Lyapunov, Sylvester, Stein and algebraic Riccati equations), model reduction, partial stabilization, and some supporting routines. The parallelization model is based on the approach used in ScaLAPACK. Numerical computations are based on ScaLAPACK as far as possible and communication is performed using the Basic Linear Algebra Communication Subroutines (BLACS) on top of a communication library such as PVM or MPI. The documentation of the library is available online in HTML format. For an example (PDGECMBS.f), click here. For more information on PLiC, consult

Peter Benner, Enrique S. QuintanaOrtí, and Gregorio
QuintanaOrtí:
A Portable Subroutine Library for Solving Linear Control Problems on Distributed Memory Computers.
In G. Cooperman, E. Jessen, and G.O. Michler (editors),
Workshop on Wide Area Networks and High Performance Computing, Essen (Germany), September 1998,
Lecture Notes in Control and Information, Vol. 249, pp. 6188, SpringerVerlag, Berlin/Heidelberg, 1999. [ISBN 1852336420]
The retrievable version is NICONET Report 19991, Working Group on Software, January 1999.
 [F4]
LAPACK based FORTRAN 77 subroutines corresponding to

Peter Benner, Ralph Byers, and Eric Barth:
Fortran 77 Subroutines for Computing the Eigenvalues of Hamiltonian Matrices I: The SquareReduced Method See the README file for a basic description of this software package.
This version dated September 1, 1998.
The slightly revised codes, corresponding to the article as it appeared in the ACM Transactions on Mathematical Software, can also be downloaded from the ACM Collected Algorithms (CALGO) homepage, file 800.  [F3] SYSP

Two Fortran 77 subroutines for compressing a symmetric or triangular
matrix to packed storage mode or to unpack a packed array to full
storage mode.
Packed storage mode can be used for symmetric or triangular matrices. Lower packed storage mode stores the lower triangle of such a matrix by columns whereas upper packed storage mode stores the upper triangle of the matrix by columns.
This version dated February 22, 1996.  [F2]
DAREX

This compressed tar file contains a directory (named darex_f) with
a LAPACK based FORTRAN 77 subroutine for generating all the benchmark
examples of discretetime algebraic Riccati equations corresponding
to
 Peter Benner, Alan Laub, and Volker Mehrmann:
A Collection of Benchmark Examples for the Numerical Solution of Algebraic Riccati Equations II: The DiscreteTime Case.
Preprint SPC 9523, Forschergruppe `Scientific Parallel Computing', Fakultät für Mathematik, TU ChemnitzZwickau. The directory darex_f includes a README file, source codes, several required data files, and a subdirectory with a sample program and corresponding input/output files.
This version dated February 28, 1996.  [F1]
CAREX

This compressed tar file contains a directory (named carex_f) with
a LAPACK based FORTRAN 77 subroutine for generating all the benchmark
examples of continuoustime algebraic Riccati equations corresponding
to
 Peter Benner, Alan Laub, and Volker Mehrmann:
A Collection of Benchmark Examples for the Numerical Solution of Algebraic Riccati Equations I: The ContinuousTime Case.
Preprint SPC 9522, Forschergruppe `Scientific Parallel Computing', Fakultät für Mathematik, TU ChemnitzZwickau. The directory carex_f includes a README file, source codes, several required data files, and a subdirectory with a sample program and corresponding input/output files.
This version dated January 18, 1996.
Back to top.
MATLAB
 [M6]
MORLAB

MATLAB functions for modal and balanced truncation model reduction
using spectral projection (sign and disk function) methods. Included are
several balancingrelated model reduction methods (not yet included:
balanced stochastic truncation, positivereal balanced truncation,
balancingfree variants).
Note: the provided functions are preliminary, not yet fully tested, and come without warranty.
 [M5]
BTMR

MATLAB functions for balanced truncation model reduction using spectral
projection (sign function) methods used in [BC6]
of my publication list.
 [M4]
HAPACK

Maintained and developed by
Peter Benner and Daniel
Kreßner.
MEX interfaces and Matlab gateway functions to some of the subroutines form the Fortran 77 library HAPACK. 
[M3]
HAMEIG

This compressed tar file contains a directory (named hameig) with
a MATLAB function for computing the eigenvalues of Hamiltonian
matrices and supporting files.
This implementation corresponds to

Peter Benner, Ralph Byers, and Eric Barth:
Fortran 77 Subroutines for Computing the Eigenvalues of Hamiltonian Matrices I: The SquareReduced Method NOTE: For use under SUN Solaris only! Uses compiled MEX files. Source codes are provided, but their compilation requires the NAGWare Gateway Generator, LAPACK, BLAS, and SLICOT.This version dated June 29, 1999.
 [M2]
DAREX

This compressed tar file contains a directory (named darex_m) with
a MATLAB function for generating all the benchmark
examples of discretetime algebraic Riccati equations corresponding
to
 Peter Benner, Alan Laub, and Volker Mehrmann:
A Collection of Benchmark Examples for the Numerical Solution of Algebraic Riccati Equations II: The DiscreteTime Case.
Preprint SPC 9523, Forschergruppe `Scientific Parallel Computing', Fakultät für Mathematik, TU ChemnitzZwickau. The directory darex_m includes a README file and the necessary Mfiles.
This version dated February 28, 1996.  [M1]
CAREX

This compressed tar file contains a directory (named carex_m) with
a MATLAB function for generating all the benchmark
examples of continuoustime algebraic Riccati equations corresponding
to
 Peter Benner, Alan Laub, and Volker Mehrmann:
A Collection of Benchmark Examples for the Numerical Solution of Algebraic Riccati Equations I: The ContinuousTime Case.
Preprint SPC 9522, Forschergruppe `Scientific Parallel Computing', Fakultät für Mathematik, TU ChemnitzZwickau. The directory carex_m includes a README file and the necessary Mfiles.
This version dated February 28, 1996.