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. ========================================================================