File Release3.History
=====================
This file contains a short description of the previous modifications
performed in the Release 3.0 of SLICOT Library since October 1997,
in reverse chronological order.
The latest changes are listed in the file Release.Notes. Both files
will be updated from time to time.
========================================================================
Update November 27, 1999
Bugs Corrected:
==============
MB04ID: setting TAU(1:min(N,M)) = ZERO when N <= P+1 (Quick return).
MB04JD: setting TAU(1:min(N,M)) = ZERO when M <= P+1 (Quick return).
SB10HD: the value for LDWORK has been corrected out.
SB10QD: redefined the values for IWRK before the two calls of MB01RU,
and the length for the associated workspace in those calls.
Note: The compressed tar files SB10HD.tar.gz and SB10FD.tar.gz in
the directory /pub/WGS/SLICOT/S/SB/SB10 of the ftp site
already contained the updated files SB10HD and SB10QD.
New Routines Added:
==================
AG08BD : extract from a system pencil S(lambda) a regular pencil having
the finite Smith zeros of S(lambda) as generalized eigenvalues.
AG08BY : extract from a system pencil S(lambda) = S(E,A,B,C,D), with
E nonsingular and upper triangular, a pencil having the same
finite Smith zeros, but with D full row rank left upper
trapezoidal matrix, and E upper triangular nonsingular matrix.
MB02QY : compute the minimum-norm solution to a linear least squares
problem, given a rank-revealing QR factorization.
MB02UD : compute the minimum norm least squares solution of
op(R) X = alpha B, or X op(R) = alpha B, with R upper triangular,
using singular value decomposition (op(R) is R or R').
MB04IY : apply the product of elementary reflectors used for QR factorization
of a matrix having a lower left zero triangle.
SB02CX : select the purely imaginary eigenvalues in computing the
H-infinity norm of a system.
SB10DD : compute the matrices of an H-infinity (sub)optimal state
controller for a discrete-time system.
TG01HD : orthogonal reduction of a descriptor system to the controllability
staircase form.
TG01HX : orthogonal reduction of a descriptor system to a system with
the same transfer-function matrix and with no uncontrollable
finite eigenvalues.
TG01ID : orthogonal reduction of a descriptor system to the observability
staircase form.
TG01JD : irreducible descriptor representation.
Note: The compressed tar files AB13CD.tar.gz and SB10DD.tar.gz in the
directories /pub/WGS/SLICOT/A/AB/AB13 and /pub/WGS/SLICOT/S/SB/SB10
of the ftp site, respectively, already contained (from the
beginning of October 1999) the files SB02CX and SB10DD.
Documentation:
=============
SB10ED,: the upper bound for LDWORK has been corrected out.
SB10FD
SB10HD
SB10QD
SB10RD
TG01AD : the header definition has been corrected out.
TG01FD : the reference to COMPQ in the definition of Z has been
replaced by COMPZ.
TG01ID, : the .html file has been added.
TG01JD
SB10LD, SB10PD, : the documentation has been updated in the file
SB10QD, SB10RD, slicot.tar.gz (these routines are now lower level).
SB10SD, SB10TD,
SB10UD, SB10VD,
SB10WD
libindex, : updated.
support
Note: The updated documentation for the routines SB10xx has been
already stored in October 1999 in the directories /pub/WGS/SLICOT/doc
and /pub/WGS/SLICOT/S/SB/SB10 of the ftp site.
New Mexfiles Added:
===================
Three new mexfiles and eight Matlab m files have been added in the
subdirectory ./Mexfiles/PC. They are useful for the design of H-infinity
(sub)optimal and H2 optimal state controllers for continuous-time and
discrete-time systems, and for computing the H-infinity norm of a system.
They can be directly called on Windows 9x or NT platforms (using
Fortran 90 memory allocation scheme).
========================================================================
Important Notice: Release 4.0 of SLICOT Library took place
===========================================================
The update described in this file coincides which the issue of the
Release 4.0 of the SLICOT Library. All source files contain the
Release 4.0 statement notice. Except from the changes described
above, several routines, together to the associated documentation files,
example program files, data and results, have been removed from SLICOT
Release 3.0. The removed files have better counterparts, and their
removal has been announced in the previous versions of the Release.Notes
file.
The table below indicates the removed files, and their functionally
equivalent routines.
-----------------------------------------------------------------------
Table 1: Routines removed in Release 4.0 of the SLICOT Library and
their functional correspondents.
-----------------------------------------------------------------------
Routines removed Functionally equivalent routines
-----------------------------------------------------------------------
AB06MD.f TB01PD.f
MB04SD.f MB04UD.f
MB04TD.f MB04VD.f
TB01QD.f TB04AD.f
TB01QY.f TB04AY.f
TB01RD.f TB05AD.f
TB01SD.f TB03AD.f
TB01SY.f TB03AY.f
TC01MD.f TC05AD.f
TC01ND.f TC04AD.f
TD01MD.f TD05AD.f
TD01ND.f TD03AD.f
TD01NY.f TD03AY.f
TD01OD.f TD04AD.f
-----------------------------------------------------------------------
In addition, the entire subdirectory LAPACK_N of /pub/WGS/SLICOT/,
containing used LAPACK files not included in LAPACK Release 2.0, has
been removed, because the needed files are now included in the
LAPACK Release 3.0.
========================================================================
Update September 1, 1999
Bugs Corrected:
==============
SB02RD : defining TRANAT = 'T' also for TRANA = 'T' (TRANAT is
always 'T').
SB03OR : replaced L2+1 by L2P1 = MIN( L2+1, N ).
SB03OT : replaced K3 by K1 in the second calls of MB04OD and MB04ND.
genleq : (subdirectory ./Mexfiles/Unix) deleted LDWORK from the Scalar
parameters section (F77 version).
linmeq : (subdirectory ./Mexfiles/Unix) deleted TRANA from the Local
variables section (F77 version).
New Routines Added:
==================
AB13CD : H-infinity norm of a continuous-time stable system.
SB02CX : selection of purely imaginary eigenvalues.
SB10ED : H2 optimal state controller for a discrete-time system.
SB10FD : H-infinity (sub)optimal state controller for a continuous-time
system.
SB10HD : H2 optimal state controller for a continuous-time system.
SB10LD : closed-loop system matrices for a system with robust
controller.
SB10PD : normalization of a system for H-infinity controller design.
SB10QD : state feedback and output injection matrices for an H-infinity
(sub)optimal state controller (continuous-time).
SB10RD : H-infinity (sub)optimal controller matrices using state
feedback and output injection matrices (continuous-time).
SB10SD : H2 optimal controller matrices for a normalized discrete-time
system.
SB10TD : H2 optimal controller matrices for a discrete-time system.
SB10UD : normalization of a system for H2 controller design.
SB10VD : state feedback and output injection matrices for an H2 optimal
state controller (continuous-time).
SB10WD : H2 optimal controller matrices using state feedback and
output injection matrices (continuous-time).
TG01AD : balancing the matrices of the system pencil corresponding to
a descriptor triple (A-lambda E,B,C).
TG01CD : orthogonal reduction of a descriptor system pair
(A-lambda E,B) to the QR-coordinate form.
TG01DD : orthogonal reduction of a descriptor system pair
(C,A-lambda E) to the RQ-coordinate form.
TG01ED : orthogonal reduction of a descriptor system (A-lambda E,B,C)
to an SVD coordinate form.
TG01FD : orthogonal reduction of a descriptor system (A-lambda E,B,C)
to a SVD-like coordinate form.
TG01FD : finding a reduced (controllable, observable, or irreducible)
descriptor representation (Ar-lambda*Er,Br,Cr) for an original
descriptor representation (A-lambda*E,B,C).
New Mexfiles Added:
===================
Five new mexfiles and over 15 Matlab m files have been added in the
subdirectory ./Mexfiles/PC. They are related to solution of standard
and generalized Sylvester and Lyapunov equations, Riccati equations,
system transformations, and canonical forms. They can be directly
called on Windows 9x or NT platforms (using Fortran 90 memory allocation
scheme).
========================================================================
Update June 26, 1999
Bugs Corrected:
==============
AB08NX : changed the reference to the array ABCD in the DLAPMT call.
AB09AX,: the use of pointers to the workspace does not enable now to
AB09BX occasionally exceed the allocated working array.
AB09ED : replaced the test
IF( NRA.EQ.0 )
by
IF( NR.LT.NU )
near the end.
MB02UV : the variables IPV, JPV are initialized before the loops 40
and 80 to 1 and I, respectively.
SB01FY : replacing the parameters N by M in the DLASET call for
setting V = I (after label 10).
SB02OD : replacing the parameters U and NNM*NNM in the SB02OY call
by DWORK and LDWORK, respectively, with LDWORK redefined
by adding 2*N+M, and 3*M as arguments to the max function.
SB03MD, : SCALE was set to ONE before Quick return.
SB03MU, In addition, XNORM was set to ZERO in SB03MU, before Quick
SB03MX, return; FERR and DWORK(1) were initialized in SB03MD and
SB03MY, SB03RD, before Quick return.
SB03OD, In SB03MD and SB03RD, a local variable (SCALEF) is used now
SB03OR, in the condition estimator loop, instead of SCALE.
SB03OT, DWORK(1) was initialized in SB04OD before Quick return.
SB03OU,
SB03PD,
SB03RD,
SB04OD
SB08DD : interchanging the steps for updating the feedback matrix
and matrix A;
correcting the calculation for updating the feedthrough matrix
DR <-- DR*V, in the discrete-time case.
SG03BD : If M = 0 and N > 0, then U is set to zero (in the array B).
TB01RD,: replacing the statement G(I,J) = ( ZERO, ZERO ) by
TB05AD G(I,J) = DCMPLX( ZERO, ZERO ), to provide "more portability".
TB01PD : quick return is now when
N.EQ.0 .OR. ( LNJOBC .AND. MIN( N, P ).EQ.0 ) .OR.
( LNJOBO .AND. MIN( N, M ).EQ.0 ) );
the statements before the call of TB01XD, including the call
statement, have been corrected out to work also when INDCON
and/or NCONT are zero.
TB01UD : DWORK(1) is set to 1 when quick return is possible.
TB01XD : quick return is now when N.EQ.0, and KL and KU are checked
that they are not larger than MAX( 0, N-1 ).
New Routines Added:
==================
AB09MD : compute a reduced order model (Ar,Br,Cr) for an original
state-space representation (A,B,C) using either the
square-root or the balancing-free square-root
Balance & Truncate model reduction method for the
ALPHA-stable part of the system.
AB09ND : compute a reduced order model (Ar,Br,Cr,Dr) for an original
state-space representation (A,B,C,D) by using either the
square-root or the balancing-free square-root Singular
Perturbation Approximation model reduction method for the
ALPHA-stable part of the system.
BB03AD : generate benchmark examples of (generalized) continuous-time
Lyapunov equations.
BB04AD : generate benchmark examples of (generalized) discrete-time
Lyapunov equations.
BD01AD : generate benchmark examples for time-invariant continuous-time
dynamical systems.
BD02AD : generate benchmark examples of time-invariant discrete-time
dynamical systems.
MB01RU : compute the matrix expression alpha*R + beta*A*X*trans(A),
with R and X symmetric (MB01RD variant).
MB01RX : compute a triangle of the matrix expression alpha*R + beta*A*B
or alpha*R + beta*B*A.
MB01RY : compute a triangle of the matrix expression alpha*R + beta*H*B
or alpha*R + beta*B*H, with H an upper Hessenberg matrix.
MB01UD : compute the matrix expressions alpha*H*A or alpha*A*H, with
H an upper Hessenberg matrix.
MB01UW : compute the matrix expressions alpha*H*A or alpha*A*H,
overwritting A, with H an upper Hessenberg matrix.
MB02PD : solve (if well-conditioned) the matrix equations op(A)*X = B,
where op(A) = A or A', and provide error bounds on the
solution and a condition estimate.
MB02QD : compute a solution, optionally corresponding to specified free
elements, to a real linear least squares problem.
MB03VD : reduce a product of p real general matrices to upper
Hessenberg form, H = H_1*H_2*...*H_p, where H_1 is
upper Hessenberg, and H_2, ..., H_p are upper triangular,
using orthogonal similarity transformations.
MB03VY : generate p real orthogonal matrices defined as the product of
elementary reflectors returned by SLICOT Library routine
MB03VD.
MB03WD : compute the Schur decomposition and the eigenvalues of a
product of matrices, H = H_1*H_2*...*H_p, with H_1 an upper
Hessenberg matrix and H_2, ..., H_p upper triangular matrices,
without evaluating the product.
MB03WX : compute the eigenvalues of a product of matrices,
T = T_1*T_2*...*T_p, where T_1 is an upper quasi-triangular
matrix and T_2, ..., T_p are upper triangular matrices.
MB04PY : apply a real elementary reflector H to a real m-by-n matrix
C, from either the left or the right.
SB01BD : pole assignment for a given matrix pair (A,B).
SB01BX : choosing a real eigenvalue or a pair of complex conjugate
at minimal distance to a given real or complex value.
SB01DD : eigenstructure assignment for a controllable matrix pair
(A,B) in orthogonal canonical form.
SB02QD : estimate the conditioning and a forward error bound for the
solution of a continuous-time algebraic Riccati equation.
SB02RD : solve a continuous-time or discrete-time algebraic Riccati
equation and estimate the conditioning and a forward error
bound for the solution using the Schur vector method.
SB02RU : construct the 2n-by-2n Hamiltonian or symplectic matrix
associated to the linear-quadratic optimization problem, used
to solve the continuous- or discrete-time algebraic Riccati
equation, respectively.
SB02SD : estimate the conditioning and a forward error bound for the
solution of a discrete-time algebraic Riccati equation.
SB03QD : estimate the conditioning and a forward error bound for the
solution of a continuous-time Lyapunov equation.
SB03QX : estimate a forward error bound for the solution of a
continuous-time Lyapunov equation.
SB03QY : estimate the separation between op(A) and -op(A)' and the
1-norm of the Theta operator for a continuous-time Lyapunov
equation, where op(A) = A or A'.
SB03SD : estimate the conditioning and a forward error bound for the
solution of a discrete-time Lyapunov equation.
SB03SX : estimate a forward error bound for the solution of a
discrete-time Lyapunov equation.
SB03SY : estimate the separation between op(A) and op(A)' and the
1-norm of the Theta operator for a discrete-time Lyapunov
equation, where op(A) = A or A'.
SB03TD : solve the real continuous-time Lyapunov matrix equation
estimate the conditioning, and compute an error bound on the
solution X.
SB03UD : solve the real discrete-time Lyapunov matrix equation
estimate the conditioning, and compute an error bound on the
solution X.
New Benchmark Data Files Added:
===============================
BD01*.dat, : 24 benchmark data files possibly called by the benchmark
BD02*.dat routines, at user's request.
New Benchmark Matlab m and mat Files Added
==========================================
ctdsx.m, : m files generating examples of standard or generalized
dtdsx.m continuous-time or discrete-time, respectively, linear
time-invariant dynamical systems.
ctds106.mat, : Matlab mat files loaded by ctdsx.m
ctds109.mat,
ctds304.mat
Documentation:
=============
SB02OD : LDWORK has been redefined as MAX(7*(2*N+1)+16,16*N,2*N+M,3*M),
if JOBB = 'B'.
SG03BD : If M = 0 and N > 0, then U is set to zero (in the array B).
TB01XD : KL and KU are in the range from 0 to MAX( 0, N-1 ).
New Mexfiles Added:
===================
A new directory, Mexfiles, with subdirectories PC and Unix, has been
added on the root of SLICOT site. These (sub)directories contain
Matlab m files and mexfiles based on the SLICOT library. The work is
in progress.
========================================================================
Update Dec. 18, 1998
Improvements:
============
AB09AD, AB09AX, : reducing the workspace by more than N*(N-1)/2
AB09BD, AB09BX, locations; programs calling AB09AD, AB09BD, and
AB09CD, AB09CX AB09CD can still be used without any change.
AB09AX, : suppressing the working arrays U and V from the parameter
AB09BX lists, by incorporating in DWORK; this simplified the
interfaces and enabled to reduce the workspace (see above).
Bugs Corrected:
==============
AB09AD : replacing the value 'B' by 'S' in the test for EQUIL before
AB09BD the call of TB01ID, and correcting the calculation of the
AB09CD optimal workspace.
AB09AX : replacing the second parameter 'NoTranspose' by 'NonUnit' in
AB09BX the DTRMV call.
AB09BD : explicitly dealing with the case NR = 0, for obtaining the
AB09BX steady-state gain DR. (Previously, a quick return occured
when ORDSEL = 'F' and NR = 0.)
AB09AX : correcting some formulas in comments and the calculation of
AB09BX the optimal workspace.
AB09CX : correcting some formulas in comments.
TB01PD : replacing NCONT by NR (two times) in the call of TB01XD.
TB01XD : quick return is now when max(N, M, P) <= 1.
New Routines Added:
==================
AB09ED : model reduction for unstable systems using optimal Hankel-norm
approximation in conjunction with square-root balancing for
the ALPHA-stable part of the system.
AB09FD : model reduction for unstable systems using either the square-
root or the balancing-free square-root Balance & Truncate
methods in conjunction with stable coprime factorization
techniques.
AB09GD : model reduction for unstable systems using either the square-
root or the balancing-free square-root Singular Perturbation
Approximation method in conjunction with stable coprime
factorization techniques.
AB13AD : Hankel-norm of the ALPHA-stable projection of a transfer-
function matrix for a state-space system.
AB13AX : Hankel-norm of a stable system with state matrix in real
Schur form.
AB13BD : H2 or L2 norm of the transfer-function matrix of a system
without poles on the imaginary axis, for a continuous-time
system, or on the unit circle, for a discrete-time system.
MA01AD : complex square root of a complex number in real arithmetic.
MA02DD : packs/unpacks the upper or lower triangle of a symmetric
matrix.
MA02ED : stores by symmetry the upper or lower triangle of a symmetric
matrix, given the other triangle.
MB01RW : computes the matrix expression op(Z)*A*op(Z)', where A is a
symmetric matrix, and op(Z) is either Z or its transpose Z'
(BLAS 2 version).
MB02UU : Solution of linear equations using LU factorization with
complete pivoting.
MB02UV : LU factorization with complete pivoting of a square matrix.
MB03SD : eigenvalues of a Hamiltonian matrix in square-reduced form.
MB04DY : symplectic scaling of a Hamiltonian matrix.
MB04OX : rank-one update of a Cholesky factorization.
MB04ZD : transforms a Hamiltonian matrix to square-reduced form by a
symplectic orthogonal similarity transformation.
SB01BY : pole placement for systems of order 1 or 2.
SB01FY : inner denominator of a right-coprime factorization of an
unstable system of order 1 or 2.
SB08CD : constructs for a given system G = (A,B,C,D) an output
injection matrix H, an orthogonal transformation matrix Z
and a gain matrix V such that the systems
Q = (Z'*(A + H*C)*Z, Z'*(B + H*D), V*C*Z, V*D)
and
R = (Z'*(A + H*C)*Z, Z'*H, V*C*Z, V)
provide a stable left coprime factorization of G in the form
G = inv(R)*Q, where G, Q and R are the corresponding
transfer-function matrices, and the denominator R is
co-inner, that is, R(s)*R'(-s) = I in the continuous-time
case, or R(z)*R'(1/z) = I in the discrete-time case.
SB08DD : constructs for a given system G = (A,B,C,D) a feedback
matrix F, an orthogonal transformation matrix Z, and a gain
matrix V such that the systems
Q = (Z'*(A + B*F)*Z, Z'*B*V, (C + D*F)*Z, D*V)
and
R = (Z'*(A + B*F)*Z, Z'*B*V, F*Z, V)
provide a stable right coprime factorization of G in the form
G = Q*inv(R), where G, Q and R are the corresponding
transfer-function matrices, and the denominator R is inner,
that is, R'(-s)*R(s) = I in the continuous-time case, or
R'(1/z)*R(z) = I in the discrete-time case.
SB08ED : constructs for a given system G = (A,B,C,D) an output
injection matrix H and an orthogonal transformation matrix
Z, such that the systems
Q = (Z'*(A + H*C)*Z, Z'*(B + H*D), C*Z, D)
and
R = (Z'*(A + H*C)*Z, Z'*H, C*Z, I)
provide a stable left coprime factorization of G in the form
G = inv(R)*Q, where G, Q and R are the corresponding
transfer-function matrices.
The resulting state dynamics matrix of systems Q and R have
eigenvalues lying inside an ALPHA-stability domain.
SB08FD : constructs for a given system G = (A,B,C,D) a feedback
matrix F and an orthogonal transformation matrix Z, such
that the systems
Q = (Z'*(A + B*F)*Z, Z'*B, (C + D*F)*Z, D)
and
R = (Z'*(A + B*F)*Z, Z'*B, F*Z, I)
provide a stable right coprime factorization of G in the form
G = Q*inv(R), where G, Q and R are the corresponding
transfer-function matrices.
The resulting state dynamics matrix of systems Q and R have
eigenvalues lying inside an ALPHA-stability domain.
SB08GD : constructs the state-space representation for the system
G = (A,B,C,D) from the factors Q = (AQR,BQ,CQR,DQ) and
R = (AQR,BR,CQR,DR) of its left coprime factorization,
G = inv(R)*Q, where G, Q and R are the corresponding
transfer-function matrices.
SB08HD : constructs the state-space representation for the system
G = (A,B,C,D) from the factors Q = (AQR,BQR,CQ,DQ) and
R = (AQR,BQR,CR,DR) of its right coprime factorization,
G = Q*inv(R), where G, Q and R are the corresponding
transfer-function matrices.
SG03AD : solves for X either the generalized continuous-time Lyapunov
equation
op(A)'*X*op(E) + op(E)'*X*op(A) = sigma*Y (1)
or the generalized discrete-time Lyapunov equation
op(A)'*X*op(A) - op(E)'*X*op(E) = sigma*Y (2)
where op(M) is either M or M', A and E are square matrices,
the right hand side Y is symmetric, and sigma is a scale
factor, set to avoid overflow in X.
SG03AX : solves for X the reduced generalized discrete-time Lyapunov
equation (2), where A is upper quasi-triangular and E is upper
triangular.
SG03AY : solves for X the reduced generalized continuous-time Lyapunov
equation (1), where A is upper quasi-triangular and E is upper
triangular.
SG03BD : computes the Cholesky factor U of the matrix X,
X = op(U)'*op(U), which is the solution of either the
generalized c-stable continuous-time Lyapunov equation
op(A)'*X*op(E) + op(E)'*X*op(A) = - sigma**2*op(B)'*op(B), (3)
or the generalized d-stable discrete-time Lyapunov equation
op(A)'*X*op(A) - op(E)'*X*op(E) = - sigma**2*op(B)'*op(B), (4)
without first finding X and without the need to form the
matrix op(B)'*op(B). U, A and E are square matrices, op(B)
is a rectangular matrix, U is an upper triangular matrix with
non-negative entries on its main diagonal, and sigma is a
scale factor, set to avoid overflow in U.
SG03BU : computes the Cholesky factor U of the matrix X,
X = op(U)'*op(U), of the reduced generalized d-stable
discrete-time Lyapunov equation (4), where A is upper
quasi-triangular and E is upper triangular.
SG03BV : computes the Cholesky factor U of the matrix X,
X = op(U)'*op(U) of the reduced generalized c-stable
continuous-time Lyapunov equation (3), where A is upper
quasi-triangular and E is upper triangular.
SG03BW : solves for X the generalized Sylvester equation
op(A)'*X*op(C) + op(E)'*X*op(D) = sigma Y
where A is upper quasi-triangular and E is upper triangular,
of order m, C and D are n-by-n matrices, n = 1, or 2, and
sigma is a scale factor, set to avoid overflow in X.
SG03BX : computes the Cholesky factor U of the matrix X,
X = op(U)'*op(U), of the reduced generalized c-stable
continuous-time Lyapunov equation (3), or d-stable discrete-
time Lyapunov equation (4), where the matrices A, B, E, and U
are real 2-by-2 matrices.
SG03BY : computes the parameters for the complex Givens rotation,
so that
( conj(c) conj(s) ) ( x ) ( z )
( ) ( ) = ( ),
( -s c ) ( y ) ( 0 )
where z is a non-negative real number.
Documentation:
=============
AB09AD, AB09AX, : the text describing the input/output parameters has
AB09BD, AB09BX, been improved.
AB09CD, AB09CX,
AB09DD
========================================================================
Update July 14, 1998
Bugs Corrected:
==============
MB02TZ : error returns for HNORM and LDH.
SB03MX : replaced INFO = 0 by INFO >= 0 in the comment about C array
SB03MY on exit.
TB01ZD : added the routine name MB01PD in EXTERNAL.
TC04AD : excluded the routine name DTRSV from EXTERNAL.
TD04AD : increased the cardinality of solvable problems, by changes in
TD03AY the called routine TD03AY (with cautions to avoid overflows);
also changes in checking input parameters.
New Routines Added:
==================
AB09AD : model reduction for stable systems via square-root or
balancing-free square-root Balance \& Truncate methods.
AB09AX : idem, for A in a real Schur form.
AB09BD : model reduction for stable systems via square-root or
balancing-free square-root singular perturbation approximation
methods.
AB09BX : idem, for A in a real Schur form.
AB09CD : optimal Hankel-norm approximation model reduction (with
square-root balancing) for stable systems.
AB09CX : idem, for A in a real Schur form.
AB09DD : computes a reduced order model using singular perturbation
approximation formulas.
MA02AD : transposes all or part of a matrix.
MA02BD : reverses the order of rows and/or columns of a matrix.
MA02CD : computes the pertranspose of a central band of a square
matrix.
MB01SD : scales a general matrix using row and column scaling factors.
MB01TD : computes the product of two upper quasi-triangular matrices
with the same structure.
MB02RD : solves an upper Hessenberg system of linear equations
using the LU factorization computed by MB02SD.
MB02SD : computes an LU factorization of an upper Hessenberg matrix
using partial pivoting with row interchanges.
MB02TD : estimates the reciprocal of the condition number of an upper
Hessenberg matrix, in either the 1-norm or the infinity-norm,
using the LU factorization computed by MB02SD.
MB03QD : reorders the eigenvalues of a real Schur matrix according to
several reordering criteria.
MB03QX : computes the eigenvalues of an upper quasi-triangular matrix.
MB03QY : computes the eigenvalues of a specified 2-by-2 diagonal block
of an upper quasi-triangular matrix, reduces that block to
the standard form and splits it in the case of real
eigenvalues.
MB03RD : computes the block diagonal form of a square matrix.
MB03RX : reorders the diagonal blocks of a principal submatrix of a
real Schur form matrix.
MB03RY : solves the Sylvester equation -AX + XB = C, where A and B are
in real Schur form, ending the calculations when the infinity
norm of an elementary submatrix of X is greater than a given
value.
MB03UD : computes all, or part, of the singular value decomposition of
an upper triangular matrix.
MB04ND : computes an RQ factorization of a structured matrix.
MB04NY : applies an elementary reflector H to a matrix [ A B ]
(with A a column vector) from the right, using in-line code
if H has order < 11.
SB03OD : solves for Cholesky factor either the stable non-negative
definite continuous-time Lyapunov equation, or the convergent
non-negative definite discrete-time Lyapunov equation.
Includes an option to solve transposed problems and a scale
parameter to avoid overflow in the solution.
Modified Householder transformations are used instead plane
rotations.
SB03OR : solves Sylvester equations op(S)' X + X op(A) = sigma C, or
op(S)' X op(A) - X = sigma C, where op(K) = K or K', S is
upper quasi-triangular, A is m-by-m (m = 1 or m = 2), and
sigma is a scale factor, set less than or equal to 1 to avoid
overflow in X.
SB03OT : solves for Cholesky factor stable (or convergent) non-negative
definite continuous-time (or discrete-time) Lyapunov equations
with A upper quasi-triangular, and R upper triangular.
SB03OU : solves for Cholesky factor stable (or convergent) non-negative
definite continuous-time (or discrete-time) Lyapunov equations
with A upper quasi-triangular, and B rectangular.
SB03OV : constructs a complex plane rotation annihilating a real number
and modifying a complex number.
SB03OY : solves for Cholesky factor non-negative definite continuous-
time (or discrete-time) 2-by-2 Lyapunov equations, with A
having complex conjugate eigenvalues, and B upper triangular,
and computes two related matrices, used by the general
Lyapunov solver.
TB01KD : computes the terms (in a state-space representation) of an
additive spectral decomposition of a transfer-function matrix
with respect to a specified region of the complex plane.
TB01LD : performs an orthogonal similarity transformation to reduce
the system state matrix to an ordered real Schur form.
TB01WD : performs an orthogonal similarity transformation to reduce
the system state matrix to the real Schur form.
TB03AD : TB01SD renamed and improved.
TB03AY : TB01SY renamed and improved.
TD03AD : TD01ND renamed and improved.
UD01BD : reads the coefficients of a matrix polynomial.
UD01CD : reads the elements of a sparse matrix polynomial.
UD01DD : reads the elements of a sparse matrix.
UD01ND : prints the coefficient matrices of a matrix polynomial.
Documentation:
=============
SB02OD : replaced few comments for PURPOSE.
TB01SD : corrected the comment on QCOEFF, which is only an output
parameter.
TC04AD : added comments about the modification of PCOEFF and QCOEFF if
LERI = 'R', but with restoring their initial contents on exit.
On-line documentation html files for most SLICOT supporting routines
have been added (over 50 files). They can be accessed from the SLICOT
Library Index, by clicking on the link to SLICOT Supporting Routines
Index. The source codes for supporting routines cannot be downloaded
individually, but only with the whole library, from the compressed file
slicot.tar.gz. All documentation files can be browsed locally, on
user's computer.
Warnings:
========
The users are advised to use TB03AD and TD03AD instead of TB01SD and
TD01ND, respectively, because the last two are intended to be removed
in the next SLICOT Release. They are still retained for compatibility
reasons.
========================================================================
Update Mar. 13, 1998
Bugs Corrected:
==============
TD01OD : replaced two erroneous calls to DLACPY by calls to DLASET.
New Routines Added:
==================
AB08ND : constructs for a linear multivariable system described by a
state-space model (A,B,C,D) a regular pencil which has the
invariant zeros of the system as generalized eigenvalues, and
also computes the orders of the infinite zeros and the
right and left Kronecker indices of the system (A,B,C,D).
AB08NX : supporting routine called by AB08ND.
SB06ND : constructs the minimum norm feedback matrix F to perform
"deadbeat control" on an (A,B)-pair in upper "staircase" form.
TB01PD : finds a minimal state-space representation, or a controllable/
observable representation of a system (AB06MD renamed and
improved).
TB01UD : finds a controllable realization of a system (A,B,C).
TB01XD : applies a special transformation to a system given as a triple
(A,B,C), A <-- P * A' * P, B <-- P * C', C <-- B' * P,
where P has 1 on the secondary diagonal, and 0 in the other
entries.
TB01YD : applies a special similarity transformation to a system
(A,B,C), A <-- P * A * P, B <-- P * B, C <-- C * P.
TB01ZD : finds a controllable realization of a single-input system
(A,B,C).
TB04AD : Transfer matrix of a given state-space representation
(A,B,C,D) (TB01QD renamed and improved).
TB03AY : supporting routine called by TB01QD.
TB04AY : supporting routine called by TB01QD.
TD04AD : Minimal state-space representation for a proper transfer
matrix (TD01OD renamed and improved).
Documentation:
=============
TB01QD :
TB01SD : few corrections in the text.
TD01OD :
Warnings:
========
The renamed routines, TB04AD and TD04AD, were added according to the
latest version of ``SLICOT Implementation and Documentation Standards''
(February, 1998), in order to refine the SLICOT Library Index
Classification for Chapter T. Two other routines (TB01SD, and TD01ND)
will be also renamed soon.
The users are advised to call these renamed routines instead of their
counterparts, with identical capabilities and interfaces, because these
renamed routines only are intended to be retained in the next SLICOT
Release.
========================================================================
Update Feb. 23, 1998
Improvements:
============
AB01ND : - reducing the workspace by N*M, by performing some of the
calculations in B;
- changing the default tolerance to N*N*EPS;
- using the new routine MB03OY to gain in efficiency.
Note: these improvements are carried on other routines which
call AB01ND (AB01OD, AB06MD, TB01QD, TB01SD, TD01ND,
TD01OD, as well as the new routines TB01PD, TB03AD,
TB04AD, TD03AD, TD04AD).
AB06MD : - reducing the workspace by N*MAX(M,P), by using the new
version of AB01ND, and its option for storing Z factored.
Note: this improvement is carried on other routines which
call AB06MD (TB01SD, TD01ND, and TD01OD).
Bugs Corrected:
==============
AB01MD : setting Z when B is zero (or negligible).
AB01ND : accumulation of the input-space transformations V.
AB01OD : - adding a test for NCONT = 0 or INDCON = 0 after the call
of AB01ND routine, to return in these cases;
- changing the default tolerance to N*N*EPS;
- test of some input parameters;
- accumulatation of the input-space transformations V.
AB06MD : the test on INDOBS.GT.1 (instead of INDOBS.NE.1).
FB01VD : removing the factor norm(.) from the default tolerance.
MB02OD : removing the factor norm(A) from the default tolerance.
TD01OD : added the test on LDWORK.
New Routines Added:
==================
MB03OY : rank-revealing QR factorization of a matrix and effective
rank estimation during the factorization process.
MB03PY : rank-revealing RQ factorization of a matrix and effective
rank estimation during the factorization process.
TB05AD : TB01RD renamed.
TC04AD : TC01ND renamed.
TC05AD : TC01MD renamed.
TD05AD : TD01MD renamed.
Documentation:
=============
AB01ND : the size of the workspace was reduced by N*M;
the default tolerance was changed to N*N*EPS.
AB01OD : the size of the workspace was reduced by N*M;
the default tolerance was changed to N*N*EPS.
AB05RD : the contents of the arrays B, C, and D on exit are also
described.
AB06MD : the size of the workspace was reduced by N*MAX(M,P).
FB01QD : the contents of the array K if INFO = 0 or INFO <> 0 is
FB01RD described;
the factor norm(.) from the default tolerance was removed.
FB01SD : the contents of the array X if INFO = 0 or INFO <> 0 (or
FB01TD JOBX = 'N') is described;
the factor norm(.) from the default tolerance was removed.
FB01VD : the contents of the arrays P, R, and K, if INFO = 0 or
INFO <> 0 are fully described.
MB02OD : the contents of the array B if INFO = 0 or INFO <> 0 is
described.
TB01QD : reduced and simplified the dimension of the work array.
TB01SD
TD01ND : reduced and simplified the dimension of the work array.
TD01OD
Warnings:
========
The renamed routines, TB05AD, TC04AD, TC05AD, and TD05AD, were added
according to the latest version of ``SLICOT Implementation and
Documentation Standards'' (February, 1998), in order to refine the
SLICOT Library Index Classification for Chapter T. Few other routines
(AB06MD, TB01QD, TB01SD, TD01ND, and TD01OD) will be also renamed soon.
The users are advised to call these renamed routines instead of their
counterparts (e.g., TB01RD, TC01ND, TC01MD, TD01MD), with identical
capabilities and interfaces, because these renamed routines only are
intended to be retained in the next SLICOT Release.
========================================================================
Update Feb. 8, 1998
Bugs Corrected:
==============
MB03OD : more accurate estimate for the largest singular value when it
is very small, compared to the given RCOND;
added example program, data and results.
MB04SD : correctly handling the cases M = 0 and/or N = 0.
MB04TD : correctly handling the cases M = 0 and/or N = 0;
initialization of MNEI to 0, instead of ZERO;
dimension of IMUK (MAX(N,M+1)).
MB04TT : array starting point A(KK,LL) correctly set when calling
DLASET.
MB04TW : column range to apply transformations on the matrix E.
MB04TX : initialization of MNEI to 0, instead of ZERO.
MB04YD : setting INUL(K) = .TRUE. when handling 2-by-2 submatrix.
SB03MD : using IERR instead of INFO in the last call of MB01RD.
New Routines Added:
==================
MB03PD : rank-revealing RQ factorization of a matrix and effective
rank estimation.
MB04GD : RQ factorization with row pivoting.
MB04OD : QR factorization of a structured matrix.
MB04OY : applies an elementary reflector H to a matrix [ A' B']'
(with A a vector) from the left, using in-line code if H
has order < 11.
MB04UD : extends the functionality of MB04SD by transforming the
matrix A too.
MB04VD : improves the functionality of MB04TD mainly by delivering
information about the pencil sE(inf)-A(inf).
MB04VX : improves the functionality of MB04TX: NBLCKS is only input
variable and the significance of MNEI is changed.
MC03ND : computes a minimal polynomial basis for the right nullspace
of a polynomial matrix. Calls MC03NX and MC03NY.
TB01ID : balancing a system triple.
Documentation:
=============
The html files for on-line documentation of user's-callable routines
have been updated. It is now possible to use the files locally, on
user's computer, provided these files have been downloaded, either
individually, or through the library compressed file, slicot.tar.gz.
Warnings:
========
The users are advised to use MB04UD and MB04VD instead of MB04SD and
MB04TD, respectively, because the last two are intended to be removed
in the next SLICOT Release. They are still retained for compatibility
reasons.
========================================================================