C  -----------------------------------------------------------------------------
C  -                                                                           -
C  -              Default input file for testing the SBR toolbox               -
C  -                                                                           -
C  -----------------------------------------------------------------------------
C
C  Author: Bruno Lang
C          Aachen University of Technology
C          na.blang@na-net.ornl.gov
C  Date: May 17, 2000
C  Version: SBR Toolbox, Rev. 1.4.1
C
C  -----------------------------------------------------------------------------
C
C  Format of the commands:
C
C  'Comment'     : The remainder of this line is treated as a comment.
C  'FileName'    : The following line contains the name of the output file
C			 (up to 7 characters). For example, if you specify 'OUTHCK'
C			 and run the double-precision test driver 'drun', then the
C			 output is directed to the file 'DOUTCHK', whereas the
C			 output of the single-precision driver 'srun' would be
C			 directed to 'SOUTCHK'.
C  'MaxDim'      : The following line determines a maximum matrix size for
C			 the runs. All runs with larger matrices will be skipped.
C			 This feature can be used to limit the execution time of
C			 the timing/tuning runs without much file editing.
C  'NoChecks'    : Switch off all numerical checks, even if they are
C			 requested in the following runs. This feature can be used
C			 to reduce the execution time of the timing/tuning runs
C			 without much file editing.
C  'OutputLevel' : The value in the following line determines how much output
C			 is produced.
C			 1 : Generate only the overall summary.
C			 2 : Generate also condensed summaries for selected
C			     computational routines (this mode should be used to
C			     obtain tuning information).
C			 3 : Generate a more detailed summary for each test run.
C			 4 : Generate summaries for each routine called.
C  'Print'       : The following line (up to 78 characters) is printed to
C			 the output file.
C  'Quit'        : Quit the test driver, ignore the remainder of the input
C			 file.
C
C  For the above commands, only the first character is relevant (see the
C  current comment lines), case is ignored.
C  The following commands trigger tests for computational routines. These
C  commands must be specified with all 5 characters (case is ignored), and
C  each requires at least two additional lines (see below).
C
C  'SYTRD' (cf. lines   86ff): Test run for the one-step reduction
C					 full -> tridiagonal (LAPACK) and, optionally,
C					 for the backward accumulation of the
C					 transformations (ORGTR from LAPACK)
C  'SBTRD' (cf. lines  138ff): Test run for the one-step reduction
C					 banded -> tridiagonal (LAPACK)
C  'SYRDB' (cf. lines  182ff): Test run for the one-step reduction
C					 full -> banded (SBR) and, optionally, for the
C					 backward accumulation of the transformations
C					 (SYGTR from SBR)
C  'SBRDB' (cf. lines  387ff): Test run for the one-step reduction
C					 banded -> banded (SBR)
C  'SBRDT' (cf. lines  591ff): Test run for the one-step reduction
C					 banded -> tridiagonal (SBR)
C  'SY2BC' (cf. lines  773ff): Test run for the copy full -> banded (SBR)
C  'SY2BI' (cf. lines  897ff): Test run for the in-place repacking
C					 full -> banded (SBR)
C  'SB2BC' (cf. lines 1021ff): Test run for the copy banded -> banded (SBR)
C  'SB2BI' (cf. lines 1123ff): Test run for the in-place repacking
C					 banded -> banded (SBR)
C  'SYRDD' (cf. lines 1225ff): Test run for the multi-step reduction driver
C					 full -> banded/tridiagonal (SBR)
C  'SBRDD' (cf. lines 1463ff): Test run for the multi-step reduction driver
C					 banded -> banded/tridiagonal (SBR)
C			
C  -----------------------------------------------------------------------------
C
C  --- name of the output file ---
C'FileName'
C'OUTCHK'
C  --- set output level ---
'OutputLevel'
 1
C ------------------------------------------------------------------------------
C
C  SYTRD : one-step reduction full -> tridiagonal (LAPACK)
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : uplo = use upper (uplo='U') or lower triangle (uplo='L') of the
C                matrix A ?
C     4 : n = dimension of the matrix A
C     5 : lda = leading dimension of the array a
C     6 : nb1 = blocking factor for the reduction (nb1=0 : use default)
C     7 : nx1 = cross-over point to non-blocked algorithm for the reduction
C               (nx1=0 : use default)
C     8 : lwork1 = length of the workspace for the reduction
C     9 : xinfo1 = expected info value for the routine sytrd
C                  (xinfo1 <> 0 may be used for checking error exits)
C    10 : jobu = accumulate the transformations in a matrix U with the
C                routine orgtr (jobu='U') or not (jobu='N') ?
C    11 : nb2 = blocking factor for the accumulation (nb2=0 : use default)
C    12 : nx2 = cross-over point to non-blocked algorithm for the accumulation
C               (nb2=0 : use default)
C    13 : lwork2 = length of workspace for the accumulation
C    14 : xinfo2 = expected info value for the routine orgtr
C                  (xinfo2 <> 0 may be used for checking error exits)
C
C  Parameters in the third line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
'SYTRD'
   'Rand'   0.0 'Upper'   30   30   8   8   10000   0 'Upd'   8   8   10000   0
   'Check'   10.0   10.0   10.0
'SYTRD'
   'Rand'   0.0 'Lower'   30   30   8   8   10000   0 'Upd'   8   8   10000   0
   'Check'   10.0   10.0   10.0
'SYTRD'
   'Rand'   0.0 'Upper'   30   30   8   8   10000   0 'NoU'   8   8   10000   0
   'Check'   10.0   10.0   10.0
'SYTRD'
   'Rand'   0.0 'Lower'   30   30   8   8   10000   0 'NoU'   8   8   10000   0
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SBTRD : one-step reduction banded -> tridiagonal (LAPACK)
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : uplo = use upper (uplo='U') or lower triangle (uplo='L') of the
C                matrix A ?
C     4 : n = dimension of the matrix A
C     5 : b1 = (semi-)bandwidth of the banded matrix A
C     6 : lda = leading dimension of the array a
C     7 : jobu = accumulate the transformations in a matrix U (jobu='U') or
C                not (jobu='N') ?
C     8 : ldu = leading dimension of the array u
C     9 : xinfo = expected info value for the routine sbtrd
C                 (xinfo <> 0 may be used for checking error exits)
C
C  Parameters in the third line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
'SBTRD'
   'Rand'   0.0 'Upper'   30    7    8 'Upd'   50   0
   'Check'   10.0   10.0   10.0
'SBTRD'
   'Rand'   0.0 'Lower'   30    7    8 'Upd'   50   0
   'Check'   10.0   10.0   10.0
'SBTRD'
   'Rand'   0.0 'Upper'   30    7    8 'NoU'   50   0
   'Check'   10.0   10.0   10.0
'SBTRD'
   'Rand'   0.0 'Lower'   30    7    8 'NoU'   50   0
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SYRDB : one-step reduction full -> banded (SBR)
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : uplo = use upper (uplo='U') or lower triangle (uplo='L') of the
C                matrix A ?
C     4 : n = dimension of the matrix A
C     5 : lda = leading dimension of the array a
C     6 : b2 = (semi-)bandwidth of the reduced matrix B
C     7 : drptol = threshold for dropping Householder transforms (in multiples
C			 of macheps)
C     8 : nb = blocking factor for the reduction (nb=0 : use default)
C     9 : lwork1 = length of the workspace for the reduction
C    10 : xinfo1 = expected info value for the routine syrdb
C                  (xinfo1 <> 0 may be used for checking error exits)
C
C  Parameters in the third line:
C     1 : jobu = accumulate the transformations in a matrix U or not ?
C                jobu = 'O' : do the accumulation 'on the fly' in syrdb
C		          = 'U' : do the accumulation after the reduction with
C					sygtr
C		     jobu = 'N' : no accumulation
C     2 : ldu = leading dimension of the array u
C     3 : lwork2 = length of workspace for the accumulation with sygtr
C     4 : xinfo2 = expected info value for the routine sygtr
C                  (xinfo2 <> 0 may be used for checking error exits)
C
C  Parameters in the fourth line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U' or 'O'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U' or 'O'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
C --- nonblocked reduction ---
'SYRDB'
   'Rand'   0.0 'Upper'   30   30    6    0.0   1   10000   1
   'OnF'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   30   30    6    0.0   1   10000   1
   'Onf'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Upper'   30   30    6    0.0   1   10000   1
   'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   30   30    6    0.0   1   10000   1
   'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Upper'   30   30    6    0.0   1   10000   1
   'NoU'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   30   30    6    0.0   1   10000   1
   'NoU'   30   10000   1
   'Check'   10.0   10.0   10.0
C --- blocked reduction ---
'SYRDB'
   'Rand'   0.0 'Upper'   30   30    7    0.0   6   10000   6
   'OnF'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   30   30    7    0.0   6   10000   6
   'OnF'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Upper'   30   30    7    0.0   6   10000   6
   'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   30   30    7    0.0   6   10000   6
   'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Upper'   30   30    7    0.0   6   10000   6
   'NoU'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   30   30    7    0.0   6   10000   6
   'NoU'   30   10000   1
   'Check'   10.0   10.0   10.0
C --- autopilot, non-exact dimensions ---
'SYRDB'
   'Rand'   0.0 'Upper'   29   31    8    0.0   0   10000   8
   'OnF'   32   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   29   31    8    0.0   0   10000   8
   'OnF'   32   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Upper'   29   31    8    0.0   0   10000   8
   'Upd'   32   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   29   31    8    0.0   0   10000   8
   'Upd'   32   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Upper'   29   31    8    0.0   0   10000   8
   'NoU'   32   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   29   31    8    0.0   0   10000   8
   'NoU'   32   10000   1
   'Check'   10.0   10.0   10.0
C --- small workspace forcing blocksize reduction ---
'SYRDB'
   'Rand'   0.0 'Upper'   30   30    8    0.0   6     300   4
   'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Upper'   30   30    8    0.0   0     300   4
   'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
C --- ISDA-type matrix ---
'SYRDB'
   'ISDA' 1.0E3 'Upper'   30   30    8  1.0E4   6   10000   6
   'Upd'   30   10000   1
   'Check'   10.0  1.0E4   10.0
'SYRDB'
   'ISDA' 1.0E3 'Upper'   30   30    8  1.0E4   6   10000   6
   'NoU'   30   10000   1
   'Check'   10.0   10.0  1.0E4
C --- checks for quick return ---
'SYRDB'
   'Rand'   0.0 'Upper'    1   30    0    0.0   1     600   1
   'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Upper'   30   30   29    0.0   1     600   1
   'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
C --- checks for error exits : ---
C --- uplo is neither 'U' nor 'L' ---
'SYRDB'
   'Rand'   0.0 'Error'   10   10    4    0.0   4   10000  -1
   'NoU'   10   10000   1
   'Check'   10.0   10.0   10.0
C --- jobu is neither 'U' nor 'N' ---
'SYRDB'
   'Rand'   0.0 'Lower'   10   10    4    0.0   4   10000  -2
   'Err'   10   10000   1
   'Check'   10.0   10.0   10.0
C --- n is negative ---
'SYRDB'
   'Rand'   0.0 'Lower'  -10   10    4    0.0   4   10000  -3
   'NoU'   10   10000   1
   'Check'   10.0   10.0   10.0
C --- b is out of range ---
'SYRDB'
   'Rand'   0.0 'Lower'    1   10    4    0.0   4   10000  -4
   'NoU'   10   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   10   10    0    0.0   4   10000  -4
   'NoU'   10   10000   1
   'Check'   10.0   10.0   10.0
'SYRDB'
   'Rand'   0.0 'Lower'   10   10   10    0.0   4   10000  -4
   'NoU'   10   10000   1
   'Check'   10.0   10.0   10.0
C --- lda is too small ---
'SYRDB'
   'Rand'   0.0 'Lower'   10    8    4    0.0   4   10000  -6
   'NoU'   10   10000   1
   'Check'   10.0   10.0   10.0
C --- drptol is negative ---
'SYRDB'
   'Rand'   0.0 'Lower'   10   10    4   -1.0   4   10000  -7
   'NoU'   10   10000   1
   'Check'   10.0   10.0   10.0
C --- ldu is too small ---
'SYRDB'
   'Rand'   0.0 'Lower'   10   10    4    0.0   4   10000  -9
   'Upd'    7   10000   1
   'Check'   10.0   10.0   10.0
C --- nb negative ---
'SYRDB'
   'Rand'   0.0 'Lower'   10   10    4    0.0  -4   10000 -10
   'NoU'   10   10000   1
   'Check'   10.0   10.0   10.0
C --- lwork is too small ---
'SYRDB'
   'Rand'   0.0 'Lower'   10   10    4    0.0   4      21 -13
   'NoU'   10   10000   1
   'Check'   10.0   10.0   10.0
C --- this should be just enough ---
'SYRDB'
   'Rand'   0.0 'Lower'   10   10    4    0.0   4      22   1
   'NoU'   10   10000   1
   'Check'     10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SBRDB : one-step reduction banded -> banded (SBR)
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : n = dimension of the matrix A
C     4 : b1 = (semi-)bandwidth of the matrix A
C     5 : lda = leading dimension of the array a
C     6 : b2 = (semi-)bandwidth of the reduced matrix B
C     7 : drptol = threshold for dropping Householder transforms (in multiples
C			 of macheps)
C     8 : nb = blocking factor for the reduction (nb=0 : use default)
C     9 : jobu = accumulate the transformations in a matrix U (jobu='U') or
C                not (jobu='N') ?
C    10 : ldu = leading dimension of the array u
C    11 : lwork = length of workspace for the reduction and accumulation
C    12 : xinfo = expected info value for the routine sbrdb
C                 (xinfo <> 0 may be used for checking error exits)
C
C  Parameters in the third line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
C --- nonblocked reduction ---
'SBRDB'
   'Rand'   0.0   30    8   13    4    0.0   1 'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    8   13    4    0.0   1 'NoU'   30   10000   1
   'Check'   10.0   10.0   10.0
C --- blocked reduction ---
'SBRDB'
   'Rand'   0.0   31    8   15    4    0.0   3 'Upd'   31   10000   3
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   31    8   15    4    0.0   3 'NoU'   31   10000   3
   'Check'   10.0   10.0   10.0
C --- autopilot, nonexact dimensions ---
'SBRDB'
   'Rand'   0.0   29    8   23    4    0.0   0 'Upd'   32   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   29    8   23    4    0.0   0 'NoU'   32   10000   4
   'Check'   10.0   10.0   10.0
C --- force blocksize reduction by insufficient workspace ---
'SBRDB'
   'Rand'   0.0   30    8   20    5    0.0   5 'Upd'   30     200   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    8   20    5    0.0   5 'NoU'   30     100   3
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30   29   59    5    0.0   0 'Upd'   30     400   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30   29   59    5    0.0   0 'NoU'   30     300   3
   'Check'   10.0   10.0   10.0
C --- ISDA-type matrix ---
'SBRDB'
   'ISDA' 1.0E3   30   12   24    8  1.0E4   8 'Upd'   30   10000   8
   'Check'   10.0  1.0E4   10.0
'SBRDB'
   'ISDA' 1.0E3   30   12   24    8  1.0E4   8 'NoU'   30   10000   8
   'Check'   10.0   10.0  1.0E4
C --- now the workspace should fit exactly ---
'SBRDB'
   'Rand'   0.0   30   10   20    6    0.0   6 'Upd'   30     306   6
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30   10   20    6    0.0   6 'NoU'   30     216   6
   'Check'   10.0   10.0   10.0
C --- force buffering by providing very tight lda ---
'SBRDB'
   'Rand'   0.0   30    9   16    5    0.0   4 'Upd'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   16    5    0.0   4 'NoU'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   15    5    0.0   4 'Upd'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   15    5    0.0   4 'NoU'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   14    5    0.0   4 'Upd'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   14    5    0.0   4 'NoU'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   13    5    0.0   4 'Upd'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   13    5    0.0   4 'NoU'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   12    5    0.0   4 'Upd'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   12    5    0.0   4 'NoU'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   11    5    0.0   4 'Upd'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   11    5    0.0   4 'NoU'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   10    5    0.0   4 'Upd'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   30    9   10    5    0.0   4 'NoU'   30   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   20   12   20    5    0.0   4 'Upd'   20   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   20   12   20    5    0.0   4 'NoU'   20   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   20   12   13    5    0.0   4 'Upd'   20   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   20   12   13    5    0.0   4 'NoU'   20   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   20   19   20    5    0.0   4 'Upd'   20   10000   4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   20   19   20    5    0.0   4 'NoU'   20   10000   4
   'Check'   10.0   10.0   10.0
C --- checks for quick return ---
'SBRDB'
   'Rand'   0.0   10    6   10    6    0.0   1 'Upd'   10   10000   1
   'Check'   10.0   10.0   10.0
C --- checks for error exits : ---
C --- jobu is neither 'U' nor 'N' ---
'SBRDB'
   'Rand'   0.0   10    6   10    3    0.0   1 'Err'   10   10000  -1
   'Check'   10.0   10.0   10.0
C --- n is negative ---
'SBRDB'
   'Rand'   0.0  -10    6   10    3    0.0   1 'Upd'   10   10000  -2
   'Check'   10.0   10.0   10.0
C --- b1 is out of range ---
'SBRDB'
   'Rand'   0.0   10   -6   10    3    0.0   1 'Upd'   10   10000  -3
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   10   10   10    3    0.0   1 'Upd'   10   10000  -3
   'Check'   10.0   10.0   10.0
C --- b2 is out of range ---
'SBRDB'
   'Rand'   0.0   10    6   10   -3    0.0   1 'Upd'   10   10000  -4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   10    6   10    0    0.0   1 'Upd'   10   10000  -4
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   10    6   10    7    0.0   1 'Upd'   10   10000  -4
   'Check'   10.0   10.0   10.0
C --- lda is too small ---
'SBRDB'
   'Rand'   0.0   10    6    6    3    0.0   1 'Upd'   10   10000  -6
   'Check'   10.0   10.0   10.0
C --- drptol is negative ---
'SBRDB'
   'Rand'   0.0   10    6   10    3   -1.0   1 'Upd'   10   10000  -7
   'Check'   10.0   10.0   10.0
C --- ldu is too small ---
'SBRDB'
   'Rand'   0.0   10    6   10    3    0.0   1 'Upd'    8   10000  -9
   'Check'   10.0   10.0   10.0
C --- nb is negative ---
'SBRDB'
   'Rand'   0.0   10    6   10    3    0.0  -1 'Upd'   10   10000 -10
   'Check'   10.0   10.0   10.0
C --- lwork is too small ---
'SBRDB'
   'Rand'   0.0   10    6   10    3    0.0   1 'Upd'   10      22 -12
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   10    6   10    3    0.0   1 'NoU'   10      20 -12
   'Check'   10.0   10.0   10.0
C --- for these, workspace should be just sufficient ---
'SBRDB'
   'Rand'   0.0   10    6   10    3    0.0   1 'Upd'   10      23   1
   'Check'   10.0   10.0   10.0
'SBRDB'
   'Rand'   0.0   10    6   10    3    0.0   1 'NoU'   10      21   1
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SBRDT : one-step reduction banded -> tridiagonal (SBR)
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : n = dimension of the matrix A
C     4 : b1 = (semi-)bandwidth of the matrix A
C     5 : lda = leading dimension of the array a
C     6 : drptol = threshold for dropping Householder transforms (in multiples
C			 of macheps)
C     7 : nb = blocking factor for the reduction (nb=0 : use default)
C     8 : jobu = accumulate the transformations in a matrix U (jobu='U') or
C                not (jobu='N') ?
C     9 : ldu = leading dimension of the array u
C    10 : lwork = length of workspace for the reduction and accumulation
C    11 : xinfo = expected info value for the routine sbrdt
C                 (xinfo <> 0 may be used for checking error exits)
C
C  Parameters in the third line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
C --- non-blocked reduction/update ---
'SBRDT'
   'Rand'   0.0   30    8   16    0.0   1 'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   16    0.0   1 'NoU'   30   10000   1
   'Check'   10.0   10.0   10.0
C --- blocked reduction/update ---
'SBRDT'
   'Rand'   0.0   31    8   16    0.0   8 'Upd'   31   10000   8
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   31    8   16    0.0   8 'NoU'   31   10000   1
   'Check'   10.0   10.0   10.0
C --- autopilot ---
'SBRDT'
   'Rand'   0.0   29    4    5    0.0   0 'Upd'   32   10000   3
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   29    4    5    0.0   0 'NoU'   32   10000   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   29    8   18    0.0   0 'Upd'   32   10000   4
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   29    8   18    0.0   0 'NoU'   32   10000   1
   'Check'   10.0   10.0   10.0
C --- ISDA-type matrix ---
'SBRDT'
   'ISDA' 1.0E3   30    8   16  1.0E4   8 'Upd'   30   10000   8
   'Check'   10.0  1.0E4   10.0
'SBRDT'
   'ISDA' 1.0E3   30    8   16  1.0E4   8 'NoU'   30   10000   1
   'Check'   10.0   10.0  1.0E4
C --- force repacking by providing rather tight lda ---
'SBRDT'
   'Rand'   0.0   30    8   15    0.0   6 'Upd'   30     517   6
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   15    0.0   6 'NoU'   30      17   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   14    0.0   6 'Upd'   30     522   6
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   14    0.0   6 'NoU'   30      23   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   13    0.0   6 'Upd'   30     531   6
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   13    0.0   6 'NoU'   30      31   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   12    0.0   6 'Upd'   30     544   6
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   12    0.0   6 'NoU'   30      44   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   11    0.0   6 'Upd'   30     561   6
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   11    0.0   6 'NoU'   30      61   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   10    0.0   6 'Upd'   30     582   6
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   10    0.0   6 'NoU'   30      82   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8    9    0.0   6 'Upd'   30     607   6
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8    9    0.0   6 'NoU'   30     107   1
   'Check'   10.0   10.0   10.0
C --- force blocksize reduction by providing too small workspace ---
'SBRDT'
   'Rand'   0.0   30    8   16    0.0   6 'Upd'   30     350   4
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30   13   26    0.0   0 'Upd'   30     370   4
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   14    0.0   6 'Upd'   30     250   3
   'Check'   10.0   10.0   10.0
C --- checks for quick return ---
'SBRDT'
   'Rand'   0.0    0    0    2    0.0   6 'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    0    2    0.0   6 'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    1    2    0.0   6 'Upd'   30   10000   1
   'Check'   10.0   10.0   10.0
C --- checks for error exits ---
C --- jobu is neither 'U' nor 'N' ---
'SBRDT'
   'Rand'   0.0   10    6   12    0.0   6 'Err'   10   10000  -1
   'Check'   10.0   10.0   10.0
C --- n is negative ---
'SBRDT'
   'Rand'   0.0  -10    6   12    0.0   6 'Upd'   10   10000  -2
   'Check'   10.0   10.0   10.0
C --- b is out of range ---
'SBRDT'
   'Rand'   0.0   10   -6   12    0.0   6 'Upd'   10   10000  -3
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   10   10   12    0.0   6 'Upd'   10   10000  -3
   'Check'   10.0   10.0   10.0
C --- lda is too small ---
'SBRDT'
   'Rand'   0.0   10    6    6    0.0   6 'Upd'   10   10000  -5
   'Check'   10.0   10.0   10.0
C --- drptol is negative ---
'SBRDT'
   'Rand'   0.0   10    6   12   -1.0   6 'Upd'   10   10000  -6
   'Check'   10.0   10.0   10.0
C --- ldu is too small ---
'SBRDT'
   'Rand'   0.0   10    6   12    0.0   6 'Upd'    8   10000 -10
   'Check'   10.0   10.0   10.0
C --- nb is negative ---
'SBRDT'
   'Rand'   0.0   10    6   12    0.0  -6 'Upd'   10   10000 -11
   'Check'   10.0   10.0   10.0
C --- workspace is too small ---
'SBRDT'
   'Rand'   0.0   30    8   16    0.0   6 'Upd'   50      37 -13
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   16    0.0   6 'NoU'   50      15 -13
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   15    0.0   6 'Upd'   50      38 -13
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8   15    0.0   6 'NoU'   50      16 -13
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8    9    0.0   6 'Upd'   50     128 -13
   'Check'   10.0   10.0   10.0
'SBRDT'
   'Rand'   0.0   30    8    9    0.0   6 'NoU'   50     106 -13
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SY2BC : copy full -> banded (SBR)
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : uplo = use upper (uplo='U') or lower triangle (uplo='L') of the
C                matrix A ?
C     4 : n = dimension of the matrix A
C     5 : b1 = (semi-)bandwidth of the matrix A
C     6 : lda1 = leading dimension of the array a in full storage
C     7 : lda2 = leading dimension of the array holding A in packed storage
C     8 : xinfo = expected info value for the routine sy2bc
C                 (xinfo <> 0 may be used for checking error exits)
C
C  Parameters in the third line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
C --- repack to a tightly fitting band ---
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   25    9    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   25    9    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with spare diagonals ---
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   25   12    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   25   12    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with the same leading dimension ---
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   25   25    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   25   25    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with leading dimension larger by 1 ---
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   25   26    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   25   26    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with larger leading dimension ---
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   25   33    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   25   33    1
   'Check'   10.0   10.0   10.0
C --- and now the same tests again, with inexact lda ---
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   30    9    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   30    9    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   30   12    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   30   12    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   30   30    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   30   30    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   30   31    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   30   31    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Upper'   25    8   30   35    1
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   30   35    1
   'Check'   10.0   10.0   10.0
C --- check for quick return ---
'SY2BC'
   'Rand'   0.0 'Lower'    0    8   30    9    1
   'Check'   10.0   10.0   10.0
C --- checks for error exits ---
C --- uplo is neither 'U' nor 'L' ---
'SY2BC'
   'Rand'   0.0 'Error'   25    8   30    9   -1
   'Check'   10.0   10.0   10.0
C --- n is negative ---
'SY2BC'
   'Rand'   0.0 'Lower'  -25    8   30    9   -2
   'Check'   10.0   10.0   10.0
C --- b is out of range ---
'SY2BC'
   'Rand'   0.0 'Lower'   25   -8   30    9   -3
   'Check'   10.0   10.0   10.0
'SY2BC'
   'Rand'   0.0 'Lower'   25   25   30    9   -3
   'Check'   10.0   10.0   10.0
C --- ldfull is too small ---
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   23    9   -5
   'Check'   10.0   10.0   10.0
C --- ldband is too small ---
'SY2BC'
   'Rand'   0.0 'Lower'   25    8   30    8   -7
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SY2BI : in-place copy full -> banded (SBR)
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : uplo = use upper (uplo='U') or lower triangle (uplo='L') of the
C                matrix A ?
C     4 : n = dimension of the matrix A
C     5 : b1 = (semi-)bandwidth of the matrix A
C     6 : lda1 = leading dimension of the array a in full storage
C     7 : lda2 = leading dimension of the array holding A in packed storage
C     8 : xinfo = expected info value for the routine sy2bi
C                 (xinfo <> 0 may be used for checking error exits)
C
C  Parameters in the third line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
C --- repack to a tightly fitting band ---
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   25    9    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   25    9    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with spare diagonals ---
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   25   12    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   25   12    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with the same leading dimension ---
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   25   25    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   25   25    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with leading dimension larger by 1 ---
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   25   26    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   25   26    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with larger leading dimension ---
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   25   33    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   25   33    1
   'Check'   10.0   10.0   10.0
C --- and now the same tests again, with inexact lda ---
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   30    9    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   30    9    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   30   12    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   30   12    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   30   30    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   30   30    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   30   31    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   30   31    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Upper'   25    8   30   35    1
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   30   35    1
   'Check'   10.0   10.0   10.0
C --- check for quick return ---
'SY2BI'
   'Rand'   0.0 'Lower'    0    8   30    9    1
   'Check'   10.0   10.0   10.0
C --- checks for error exits ---
C --- uplo is neither 'U' nor 'L' ---
'SY2BI'
   'Rand'   0.0 'Error'   25    8   30    9   -1
   'Check'   10.0   10.0   10.0
C --- n is negative ---
'SY2BI'
   'Rand'   0.0 'Lower'  -25    8   30    9   -2
   'Check'   10.0   10.0   10.0
C --- b is out of range ---
'SY2BI'
   'Rand'   0.0 'Lower'   25   -8   30    9   -3
   'Check'   10.0   10.0   10.0
'SY2BI'
   'Rand'   0.0 'Lower'   25   25   30    9   -3
   'Check'   10.0   10.0   10.0
C --- ldfull is too small ---
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   23    9   -5
   'Check'   10.0   10.0   10.0
C --- ldband is too small ---
'SY2BI'
   'Rand'   0.0 'Lower'   25    8   30    8   -6
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SB2BC : copy banded -> banded (SBR)
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : uplo = use upper (uplo='U') or lower triangle (uplo='L') of the
C                matrix A ?
C     4 : n = dimension of the matrix A
C     5 : b1 = (semi-)bandwidth of the matrix A
C     6 : lda1 = leading dimension of the source array a
C     7 : lda2 = leading dimension of the destination array
C     8 : xinfo = expected info value for the routine sb2bc
C                 (xinfo <> 0 may be used for checking error exits)
C
C  Parameters in the third line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
C --- repack a tightly fitting band ---
C --- repack to a tightly fitting band ---
'SB2BC'
   'Rand'   0.0 'Upper'   25    8    9    9    1
   'Check'   10.0   10.0   10.0
'SB2BC'
   'Rand'   0.0 'Lower'   25    8    9    9    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with spare diagonals ---
'SB2BC'
   'Rand'   0.0 'Upper'   25    8    9   12    1
   'Check'   10.0   10.0   10.0
'SB2BC'
   'Rand'   0.0 'Lower'   25    8    9   12    1
   'Check'   10.0   10.0   10.0
C --- and now repack a band with diagonals to spare ---
C --- repack to tight fit ---
'SB2BC'
   'Rand'   0.0 'Upper'   25    8   15    9    1
   'Check'   10.0   10.0   10.0
'SB2BC'
   'Rand'   0.0 'Lower'   25    8   15    9    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with spare diagonals ---
'SB2BC'
   'Rand'   0.0 'Upper'   25    8   15   12    1
   'Check'   10.0   10.0   10.0
'SB2BC'
   'Rand'   0.0 'Lower'   25    8   15   12    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with the same leading dimension ---
'SB2BC'
   'Rand'   0.0 'Upper'   25    8   15   15    1
   'Check'   10.0   10.0   10.0
'SB2BC'
   'Rand'   0.0 'Lower'   25    8   15   15    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with larger leading dimension ---
'SB2BC'
   'Rand'   0.0 'Upper'   25    8   15   25    1
   'Check'   10.0   10.0   10.0
'SB2BC'
   'Rand'   0.0 'Lower'   25    8   15   25    1
   'Check'   10.0   10.0   10.0
C --- check for quick return ---
'SB2BC'
   'Rand'   0.0 'Lower'    0    0   30    9    1
   'Check'   10.0   10.0   10.0
C --- checks for error exits ---
C --- uplo is neither 'U' nor 'L' ---
'SB2BC'
   'Rand'   0.0 'Error'   25    8   12    9   -1
   'Check'   10.0   10.0   10.0
C --- n is negative ---
'SB2BC'
   'Rand'   0.0 'Lower'  -25    8   12    9   -2
   'Check'   10.0   10.0   10.0
C --- b is out of range ---
'SB2BC'
   'Rand'   0.0 'Lower'   25   -8   12    9   -3
   'Check'   10.0   10.0   10.0
'SB2BC'
   'Rand'   0.0 'Lower'   25   25   25    9   -3
   'Check'   10.0   10.0   10.0
C --- ldsrc is too small ---
'SB2BC'
   'Rand'   0.0 'Lower'   25    8    6    9   -5
   'Check'   10.0   10.0   10.0
C --- lddst is too small ---
'SB2BC'
   'Rand'   0.0 'Lower'   25    8   11    7   -7
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SB2BI : in-place copy banded -> banded (SBR)
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : uplo = use upper (uplo='U') or lower triangle (uplo='L') of the
C                matrix A ?
C     4 : n = dimension of the matrix A
C     5 : b1 = (semi-)bandwidth of the matrix A
C     6 : lda1 = leading dimension of the source array a
C     7 : lda2 = leading dimension of the destination array
C     8 : xinfo = expected info value for the routine sb2bi
C                 (xinfo <> 0 may be used for checking error exits)
C
C  Parameters in the third line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
C --- repack a tightly fitting band ---
C --- repack to a tightly fitting band ---
'SB2BI'
   'Rand'   0.0 'Upper'   25    8    9    9    1
   'Check'   10.0   10.0   10.0
'SB2BI'
   'Rand'   0.0 'Lower'   25    8    9    9    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with spare diagonals ---
'SB2BI'
   'Rand'   0.0 'Upper'   25    8    9   12    1
   'Check'   10.0   10.0   10.0
'SB2BI'
   'Rand'   0.0 'Lower'   25    8    9   12    1
   'Check'   10.0   10.0   10.0
C --- and now repack a band with diagonals to spare ---
C --- repack to tight fit ---
'SB2BI'
   'Rand'   0.0 'Upper'   25    8   15    9    1
   'Check'   10.0   10.0   10.0
'SB2BI'
   'Rand'   0.0 'Lower'   25    8   15    9    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with spare diagonals ---
'SB2BI'
   'Rand'   0.0 'Upper'   25    8   15   12    1
   'Check'   10.0   10.0   10.0
'SB2BI'
   'Rand'   0.0 'Lower'   25    8   15   12    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with the same leading dimension ---
'SB2BI'
   'Rand'   0.0 'Upper'   25    8   15   15    1
   'Check'   10.0   10.0   10.0
'SB2BI'
   'Rand'   0.0 'Lower'   25    8   15   15    1
   'Check'   10.0   10.0   10.0
C --- repack to a band with larger leading dimension ---
'SB2BI'
   'Rand'   0.0 'Upper'   25    8   15   25    1
   'Check'   10.0   10.0   10.0
'SB2BI'
   'Rand'   0.0 'Lower'   25    8   15   25    1
   'Check'   10.0   10.0   10.0
C --- check for quick return ---
'SB2BI'
   'Rand'   0.0 'Lower'    0    0   30    9    1
   'Check'   10.0   10.0   10.0
C --- checks for error exits ---
C --- uplo is neither 'U' nor 'L' ---
'SB2BI'
   'Rand'   0.0 'Error'   25    8   12    9   -1
   'Check'   10.0   10.0   10.0
C --- n is negative ---
'SB2BI'
   'Rand'   0.0 'Lower'  -25    8   12    9   -2
   'Check'   10.0   10.0   10.0
C --- b is out of range ---
'SB2BI'
   'Rand'   0.0 'Lower'   25   -8   12    9   -3
   'Check'   10.0   10.0   10.0
'SB2BI'
   'Rand'   0.0 'Lower'   25   25   25    9   -3
   'Check'   10.0   10.0   10.0
C --- ldsrc is too small ---
'SB2BI'
   'Rand'   0.0 'Lower'   25    8    6    9   -5
   'Check'   10.0   10.0   10.0
C --- lddst is too small ---
'SB2BI'
   'Rand'   0.0 'Lower'   25    8   11    7   -6
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SYRDD : driver routine for the reduction full -> banded/tridiagonal
C
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : uplo = use upper (uplo='U') or lower triangle (uplo='L') of the
C                matrix A ?
C     4 : n = dimension of the matrix A
C     5 : lda1 = leading dimension of the array a
C     6 : b2 = (semi-)bandwidth of the reduced matrix B
C     7 : lda2 = leading dimension of the array holding the banded matrix
C     8 : nsteps = number of reduction steps
C     9 : drptol = threshold for dropping Householder transforms (in multiples
C                  of macheps)
C    10 : jobu = accumulate the transformations in a matrix U (jobu='U') or
C                not (jobu='N') ?
C    11 : lwork = length of workspace for the reduction and accumulation
C    12 : xinfo = expected info value for the routine syrdb
C                 (xinfo <> 0 may be used for checking error exits)
C
C  If nsteps > 1 then the second line contains the nstep-1 intermediate
C    bandwidths, and the third line contains the nsteps blocking factors for the
C    reduction steps.
C  If nsteps = 1 then the second line contains the blocking factor for the
C    reduction step (the line specifying intermediate bandwidths is missing).
C  If nsteps = 0 then no intermediate bandwidths or blocking factors are
C    specified (so both lines are missing).
C
C  Parameters in the last line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C                  (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C                  (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
C --- one-step reduction ---
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    1    2    1    0.0 'Upd'   10000    1
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    1    2    1    0.0 'NoU'   10000    1
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    1    2    1    0.0 'Upd'   10000    1
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    1    2    1    0.0 'NoU'   10000    1
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    8    9    1    0.0 'Upd'   10000    1
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    8    9    1    0.0 'NoU'   10000    1
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    8    9    1    0.0 'Upd'   10000    1
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    8    9    1    0.0 'NoU'   10000    1
       5
   'Check'   10.0   10.0   10.0
C --- two-step reduction ---
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    1   16    2    0.0 'Upd'   10000    1
      12
       5     4
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    1   16    2    0.0 'NoU'   10000    1
      12
       5     4
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    1   16    2    0.0 'Upd'   10000    1
      12
       5     4
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    1   16    2    0.0 'NoU'   10000    1
      12
       5     4
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    8   14    2    0.0 'Upd'   10000    1
      12
       5     4
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    8   14    2    0.0 'NoU'   10000    1
      12
       5     4
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    8   14    2    0.0 'Upd'   10000    1
      12
       5     4
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    8   14    2    0.0 'NoU'   10000    1
      12
       5     4
   'Check'   10.0   10.0   10.0
C --- autopilot ---
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    1    2    0    0.0 'Upd'   10000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    1    2    0    0.0 'NoU'   10000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    1    2    0    0.0 'Upd'   10000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    1    2    0    0.0 'NoU'   10000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    5    6    0    0.0 'Upd'   10000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'   30   30    5    6    0    0.0 'NoU'   10000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    5    6    0    0.0 'Upd'   10000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   30   30    5    6    0    0.0 'NoU'   10000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'  300  300    1   64    0    0.0 'Upd'   20000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Upper'  300  300    1   64    0    0.0 'NoU'   20000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'  300  300    1   64    0    0.0 'Upd'   20000    1
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'  300  300    1   64    0    0.0 'NoU'   20000    1
   'Check'   10.0   10.0   10.0
C --- check for quick return ---
'SYRDD'
   'Rand'   0.0 'Lower'    0    4    1    2    0    0.0 'Upd'   10000    1
   'Check'   10.0   10.0   10.0
C --- check for error exits ---
C --- jobu is neither 'U' nor 'N' ---
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    4    8    1    0.0 'Err'   10000   -1
       5
   'Check'   10.0   10.0   10.0
C --- uplo is neither 'U' nor 'L' ---
'SYRDD'
   'Rand'   0.0 'Error'   10   10    4    8    1    0.0 'Upd'   10000   -2
       5
   'Check'   10.0   10.0   10.0
C --- n is negative ---
'SYRDD'
   'Rand'   0.0 'Lower'  -10   10    4    8    1    0.0 'Upd'   10000   -3
       5
   'Check'   10.0   10.0   10.0
C --- b2 is out of range ---
'SYRDD'
   'Rand'   0.0 'Lower'   10   10   -1    8    1    0.0 'Upd'   10000   -4
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    0    8    1    0.0 'Upd'   10000   -4
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   10   10   10   20    1    0.0 'Upd'   10000   -4
       5
   'Check'   10.0   10.0   10.0
C --- lda is too small ---
'SYRDD'
   'Rand'   0.0 'Lower'   10    8    4    8    1    0.0 'Upd'   10000   -6
       5
   'Check'   10.0   10.0   10.0
C --- drptol is out of range ---
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    4    8    1   -1.0 'Upd'   10000   -7
       5
   'Check'   10.0   10.0   10.0
C --- ldband is out of range ---
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    4    4    1    0.0 'Upd'   10000   -9
       5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    4    6    2    0.0 'Upd'   10000   -9
       6
       5    3
   'Check'   10.0   10.0   10.0
C --- nsteps is negative ---
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    4    8   -1    0.0 'Upd'   10000  -12
   'Check'   10.0   10.0   10.0
C --- sequence of bandwidths is non-decreasing ---
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    1   20    3    0.0 'Upd'   10000  -13
      10    3
       5    5    5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    3    8    3    0.0 'Upd'   10000  -13
       6    2
       5    5    5
   'Check'   10.0   10.0   10.0
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    1    8    3    0.0 'Upd'   10000  -13
       4    5
       5    5    5
   'Check'   10.0   10.0   10.0
C --- sequence of blocking factors contains negative entries ---
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    4    8    1    0.0 'Upd'   10000  -14
      -5
   'Check'   10.0   10.0   10.0
C --- workspace is too small ---
'SYRDD'
   'Rand'   0.0 'Lower'   10   10    4    8    1    0.0 'Upd'      38  -16
       5
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C  SBRDD : driver routine for the reduction banded -> banded/tridiagonal
C 
C  Parameters in the second line:
C     1 : mtype = matrix type (mtype='R' : random, mtype='I' : isda)
C     2 : diam = diameter of the eigenvalue clusters (in multiples of macheps;
C                used only if mtype='I'
C     3 : uplo = use upper (uplo='U') or lower triangle (uplo='L') of the
C                matrix A ?
C     4 : n = dimension of the matrix A
C     5 : b1 = (semi-)bandwidth of the matrix A
C     6 : lda = leading dimension of the array a
C     7 : b2 = (seim-)bandwidth of the reduced matrix B
C     8 : nsteps = number of reduction steps
C     9 : drptol = threshold for dropping Householder transforms (in multiples
C			 of macheps)
C    10 : jobu = accumulate the transformations in a matrix U (jobu='U') or
C                not (jobu='N') ?
C    11 : ldu = leading dimension of the array u
C    12 : lwork = length of workspace for the reduction and accumulation
C    13 : xinfo = expected info value for the routine syrdb
C                 (xinfo <> 0 may be used for checking error exits)
C
C  If nsteps > 1 then the second line contains the nstep-1 intermediate
C    bandwidths, and the third line contains the nsteps blocking factors for the
C    reduction steps.
C  If nsteps = 1 then the second line contains the blocking factor for the
C    reduction step (the line specifying intermediate bandwidths is missing).
C  If nsteps = 0 then no intermediate bandwidths or blocking factors are
C    specified (so both lines are missing).
C
C  Parameters in the last line:
C     1 : check = check the results (check='C') or not (check='N') ?
C     2 : torthu = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps);
C                  used only if check='C' and jobu='U'
C     3 : tres = threshold for the residual error F-norm( U * A - B * U )
C                (in multiples of n * macheps * F-norm( A ));
C                used only if check='C' and jobu='U'
C     4 : tdevls = threshold for the orthogonality error F-norm( U' * U - I )
C		       (in multiples of n * macheps * F-norm( A ));
C                  used only if check='C' and jobu='N'
C
C ------------------------------------------------------------------------------
C --- one-step reduction ---
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   30    1    1    0.0 'Upd'   30   10000    1
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   30    1    1    0.0 'NoU'   30   10000    1
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    1    1    0.0 'Upd'   30   10000    1
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    1    1    0.0 'NoU'   30   10000    1
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30    4    8    1    1    0.0 'Upd'   30   10000    1
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30    4    8    1    1    0.0 'NoU'   30   10000    1
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30    4    8    1    1    0.0 'Upd'   30   10000    1
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30    4    8    1    1    0.0 'NoU'   30   10000    1
       5
   'Check'   10.0   10.0   10.0
C --- two-step reduction ---
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   30    1    2    0.0 'Upd'   30   10000    1
      12
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   30    1    2    0.0 'NoU'   30   10000    1
      12
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    1    2    0.0 'Upd'   30   10000    1
      12
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    1    2    0.0 'NoU'   30   10000    1
      12
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   30    3    2    0.0 'Upd'   30   10000    1
      12
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   30    3    2    0.0 'NoU'   30   10000    1
      12
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    3    2    0.0 'Upd'   30   10000    1
      12
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    3    2    0.0 'NoU'   30   10000    1
      12
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   30    1    2    0.0 'Upd'   30   10000    1
       3
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   30    1    2    0.0 'NoU'   30   10000    1
       3
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    1    2    0.0 'Upd'   30   10000    1
       3
       5    3
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    1    2    0.0 'NoU'   30   10000    1
       3
       5    3
   'Check'   10.0   10.0   10.0
C --- doubling sequence ---
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   16    1    4    0.0 'Upd'   30   10000    1
      14   12    8
       0    0    0    0
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30   15   16    1    4    0.0 'NoU'   30   10000    1
      14   12    8
       0    0    0    0
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   16    1    4    0.0 'Upd'   30   10000    1
      14   12    8
       0    0    0    0
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   16    1    4    0.0 'NoU'   30   10000    1
      14   12    8
       0    0    0    0
   'Check'   10.0   10.0   10.0
C --- autopilot ---
'SBRDD'
   'Rand'   0.0 'Upper'   80   70   80    1    0    0.0 'Upd'   80   10000    1
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   80   70   80    1    0    0.0 'NoU'   80   10000    1
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   80   70   80    1    0    0.0 'Upd'   80   10000    1
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   80   70   80    1    0    0.0 'NoU'   80   10000    1
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30   12   30    1    0    0.0 'Upd'   30   10000    1
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Upper'   30   12   30    1    0    0.0 'NoU'   30   10000    1
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   12   30    1    0    0.0 'Upd'   30   10000    1
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   12   30    1    0    0.0 'NoU'   30   10000    1
   'Check'   10.0   10.0   10.0
C --- check for quick return ---
'SBRDD'
   'Rand'   0.0 'Lower'    0    4    8    1    0    0.0 'Upd'   10   10000    1
   'Check'   10.0   10.0   10.0
C --- check for error exits ---
C --- jobu is neither 'U' nor 'N' ---
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    1    1    0.0 'Err'   10   10000   -1
       5
   'Check'   10.0   10.0   10.0
C --- uplo is neither 'U' nor 'L' ---
'SBRDD'
   'Rand'   0.0 'Error'   10    4    8    1    1    0.0 'Upd'   10   10000   -2
       5
   'Check'   10.0   10.0   10.0
C --- n is negative ---
'SBRDD'
   'Rand'   0.0 'Lower'  -10    4    8    1    1    0.0 'Upd'   10   10000   -3
       5
   'Check'   10.0   10.0   10.0
C --- b1 is out of range ---
'SBRDD'
   'Rand'   0.0 'Lower'   10   -4    8    1    1    0.0 'Upd'   10   10000   -4
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   10   10   18    1    1    0.0 'Upd'   10   10000   -4
       5
   'Check'   10.0   10.0   10.0
C --- b2 is out of range ---
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    0    1    0.0 'Upd'   10   10000   -5
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'    0    0    8    1    1    0.0 'Upd'   10   10000   -5
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    5    1    0.0 'Upd'   10   10000   -5
       5
   'Check'   10.0   10.0   10.0
C --- lda is too small ---
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    4    1    1    0.0 'Upd'   10   10000   -7
       5
   'Check'   10.0   10.0   10.0
C --- drptol is out of range ---
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    1    1   -1.0 'Upd'   10   10000   -8
       5
   'Check'   10.0   10.0   10.0
C --- ldu is out of range ---
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    1    1    0.0 'Upd'    8   10000  -12
       5
   'Check'   10.0   10.0   10.0
C --- nsteps is negative ---
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    1   -1    0.0 'Upd'   10   10000  -13
   'Check'   10.0   10.0   10.0
C --- sequence of bandwidths is non-decreasing ---
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    1    4    0.0 'Upd'   10   10000  -14
       5    3    2
       5    5    5    5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    1    4    0.0 'Upd'   10   10000  -14
       3    5    2
       5    5    5    5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    1    4    0.0 'Upd'   10   10000  -14
       3    2    5
       5    5    5    5
   'Check'   10.0   10.0   10.0
C --- negative blocking factors ---
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    1    3    0.0 'Upd'   10   10000  -15
       3    2
       5   -5    5
   'Check'   10.0   10.0   10.0
C --- workspace is too small ---
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    1    1    0.0 'Upd'   30      42  -17
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   10    4    8    1    1    0.0 'Upd'   10       8  -17
       5
   'Check'   10.0   10.0   10.0
'SBRDD'
   'Rand'   0.0 'Lower'   30   15   30    1    2    0.0 'Upd'   30      55  -17
       8
       5    5
   'Check'   10.0   10.0   10.0
C ------------------------------------------------------------------------------
C
C --- quit ---
'Quit'
C
