Extensive performance evaluation of the implemented basic systems and control software has been performed to assess the accuracy and efficiency. The results have been compared with standard techniques incorporated in MATLAB. Before Release 7, many SLICOT codes, including Sylvester, Lyapunov, and Riccati solvers were several fold faster than the corresponding MATLAB solvers. Starting with Release 7, MATLAB includes much improved solvers, comparable with SLICOT. Actually, since Release 7, MATLAB Lyapunov and Sylvester solvers call SLICOT routines.
For illustrative purposes, several results for (block) Toeplitz matrices and associated linear systems are presented. The SLICOT solvers are compared with the available, standard techniques incorporated in MATLAB (namely, the M-function chol, and the linear system solving operators / and \), which do not exploit the problem structure, as well as with the MATLAB implementation of the same fast algorithms for block Toeplitz matrices (the M-function toepinv). Random data sets are used, but positivity is forced. The coefficient matrices are nxk-by-nxk symmetric block Toeplitz matrices BT, with k taking values in [1 2 20 50], and n obtained by dividing 1000 to k, hence nxk = 1000 ; k is the blocksize, and n is the number of the blocks. Also, the linear systems Y BT = C and BT X = B (C = B') are solved, the matrix B having nrhs columns, with nrhs also taking values in [1 2 20 50].
The speed-up factors for factorizations can be seen by clicking here, and the speed-up factors for solutions can be seen by clicking here. Specifically, the two diagrams show the ratios of the execution times of SLICOT fstoep MEX-file to MATLAB toepinv and \ or / operators, respectively. There are four problems for factorization (first diagram), for k = 1, 2, 20, and 50, and 16 problems for solution (second diagram), since all values of nrhs have been tried for each value of k. Both the systems BT X = B, or their transposed counterparts, Y BT = C, have been solved. R and L are the computed upper and lower Cholesky factors of BT and inv(BT), respectively, and Ti is an approximate inverse of BT, obtained using its computed generator, G, and U = chol(BT). The results have been obtained on a PC machine at 500 Mhz, without optimized BLAS. The errors and residuals for fstoep are slightly larger than for standard MATLAB functions, but essentially the same.