The freeware subroutine library SLICOT provides Fortran 77 implementations of
numerical algorithms for computations in systems and control theory. Based on numerical
linear algebra routines from BLAS and LAPACK libraries, SLICOT provides methods for the
design and analysis of control systems. The basic ideas behind the library are:
1. usefulness of algorithms;
2. robustness, algorithms must either return reliable results or an error or warning indicator;
3. numerical stability and accuracy: the results are as good as can be expected when working at a given precision. If possible an estimate of the achieved accuracy should be given;
4. performance with respect to speed and memory requirements. Although important because of ever increasing complexity of control problems, this objective may never be met at cost of the two previous ones;
5. portability and reusability the library should be independent of platforms;
6. standardisation based on rigorous programming and documentation standards;
7. benchmarking, i.e., a standardised set of examples that allows an evaluation of the performance of a method as well as the implementation with respect to correctness, accuracy, and speed. Benchmarking gives also insight in the behaviour of the method and its implementation in extreme situations, i.e. for problems where the limit of the possible accuracy is reached.
The current version of SLICOT consists of about 250 user callable routines in various
domains of systems and control. These routines have associated on-line documentation.
About 150 routines have associated example programs, data and results. New routines are
still in preparation. Due to the use of Fortran 77, reusability of the software is
obtained, so SLICOT can serve as the core for various existing and future CACSD platforms
and production quality software. SLICOT routines can be linked to MATLAB through a gateway
compiler, e.g. the NAG Gateway Generator. SLICOT is freely available through WWW: (http://www.win.tue.nl/wgs/) or anonymous ftp: (ftp://wgs.esat.kuleuven.ac.be/pub/WGS/SLICOT/).
The use of Fortran 77 allows to exploit the structural features of the underlying
computational problem and the use of appropriate data structures. This is advantageous for
speed of computation and required memory. As the complexity of systems and related control
solutions is ever increasing, the issue of speed and memory remains a valid one. As a
comparison, MATLAB uses the dense complex matrix as the main data structure, which does
not allow to exploit structural aspects. The performance of the library has been assessed
with respect to numerical quality, computational speed, and memory requirements for a
variety of examples. Comparisons indicate that SLICOT routines usually outperform
equivalent MATLAB functions, often by orders of magnitude; see Benner e.a. (1997).
Future developments of SLICOT proceed within the EU thematic network NICONET. Special
emphasis will be given to further extensions of the library, to extending accompanying
library of benchmarks, to integration of the library in a user friendly environment (e.g.
MATLAB), and to development of a parallel version of SLICOT for distributed memory
computing environments.
More detailed information on SLICOT can be found in:
Benner, P., Mehrmann,
V., Sima, V., Van Huffel, S., and A. Varga: "SLICOT - A Subroutine Library in
Systems and Control Theory", June 1997, NICONET Report 97-3.
The development of the SLICOT Library owe much to many people, and both NAG and WGS thank all who have contributed to the development of SLICOT. We especially thank all those who have contributed routines to the Library including E. Barth, Th. Beelen, P. Benner, C. Benson, R. Byers, R. Dekeyser, F. Delebecque, M. Denham, F. Dumortier, A. Emami-Naeini, Da-Wei Gu, A. Geurts, S. Hammarling, G. van den Hurk, B. Kågström, C. Kliman, M. Konstantinov, D. Kressner, A. Laub, C. Oara, C. Paige, Th. Penzl, P. Petkov, V. Sima, S. Steer, F. Svaricek, M. Vanbegin, P. Van Dooren, S. Van Huffel, A. Varga, M. Verhaegen, L. Westin, H. Willemsen, T. Williams and Hongguo Xu.
The freeware SLICOT library is organised as the SLICOT Manual. Each chapter can be identified by a single letter. In the ftp distribution of SLICOT this corresponds to one directory with the same name. The following chapters are included:
The documentation of SLICOT is on-line available. It contains complete descriptions of each available subroutine. To see a sample documentation of a routine (AB01MD.f), click here.
The SLICOT library is built on the LAPACK and BLAS libraries, containing a collection of highly performant and numerically reliable basic linear algebra subroutines. These packages can be obtained via Netlib, a system for the distribution of mathematical software through electronic mail. Simply send a message containing the line "help" to the Internet address netlib@research.att.com and you will receive information on how to use netlib and how to retrieve the routines, collected in the BLAS and LAPACK libraries, from Netlib.
Netlib repositories are in Tennessee, Germany, United Kingdom. The official Netlib repositories for BLAS and LAPACK are:
Any response from users of the SLICOT library is welcome and should be sent via e-mail to the address: slicot@win.tue.nl. These might be complaints as well as adhesion, suggestions for new routines or improvements of existing routines in SLICOT, and detected errors or bugs in any of the SLICOT routines.
At present, over 100 user-callable subroutines of the SLICOT library can be retrieved individually via FTP at ftp://wgs.esat.kuleuven.ac.be/pub/WGS/SLICOT/. The SLICOT library index enables to browse through the documentation of all user-callable subroutines, and to download the needed compressed tar files. The whole library, including example programs, data and results, can be retrieved via ftp as a compressed .tar file (click here to download).