Source: http://www.netlib.org/lapack/explore-html/d3/dc9/schkbd_8f_source.html
Timestamp: 2019-04-21 14:06:53+00:00

Document:
36 *> SCHKBD checks the singular value decomposition (SVD) routines.
41 *> and lower bidiagonal if m < n.
43 *> SORGBR generates the orthogonal matrices Q and P' from SGEBRD.
44 *> Note that Q and P are not necessarily square.
50 *> and right singular vectors, respectively, of B.
52 *> singular vectors are not computed.
53 *> 3) A = (UQ) S (P'V'), the SVD of the original matrix A.
55 *> U to a matrix X, useful in least squares applications.
62 *> and right singular vectors, respectively, of B.
64 *> singular vectors are not computed.
71 *> and right singular vectors, respectively, of B.
73 *> singular vectors are not computed.
78 *> singular vectors are not computed.
83 *> singular vectors are not computed.
86 *> type, an M by N matrix A and an M by NRHS matrix X are generated.
111 *> and Z = U' Y.
116 *> (8) S1 contains min(M,N) nonnegative values in decreasing order.
120 *> computing U and V.
144 *> (18) S1 contains min(M,N) nonnegative values in decreasing order.
148 *> computing U and V.
157 *> (23) S1 contains min(M,N) nonnegative values in decreasing order.
161 *> computing U and V.
169 *> (28) S1 contains min(M,N) nonnegative values in decreasing order.
173 *> computing U and V.
181 *> (33) S1 contains min(M,N) nonnegative values in decreasing order.
185 *> computing U and V.
189 *> (1) The zero matrix.
190 *> (2) The identity matrix.
193 *> 1, ..., ULP and random signs.
196 *> 1, ..., ULP and random signs.
198 *> and random signs.
205 *> on the diagonal.
209 *> signs on the diagonal.
213 *> signs on the diagonal.
218 *> (13) Rectangular matrix with random entries chosen from (-1,1).
227 *> (a) SGEBRD is not called to reduce it to bidiagonal form.
229 *> matrix will be lower bidiagonal, otherwise upper.
230 *> (c) only tests 5--8 and 14 are performed.
233 *> the logical array DOTYPE.
243 *> MVAL and NVAL. The matrix sizes are used in pairs (M,N).
249 *> The values of the matrix row dimension M.
255 *> The values of the matrix column dimension N.
264 *> defined, which is to use whatever matrices are in A and B.
266 *> DOTYPE(MAXTYP+1) is .TRUE. .
277 *> DOTYPE(NTYPES) will be ignored.
285 *> operations on the right-hand side will not be tested.
286 *> NRHS must be at least 0.
307 *> be a reasonably small multiple of 1, e.g., 10 or 100.
313 *> where NMAX is the maximum value of N in NVAL.
320 *> where MMAX is the maximum value of M in MVAL.
355 *> The leading dimension of the arrays X, Y, and Z.
377 *> The leading dimension of the array Q. LDQ >= max(1,MMAX).
388 *> The leading dimension of the arrays PT, U, and V.
389 *> LDPT >= max(1, max(min(MVAL(j),NVAL(j)))).
432 *> If 0, then everything ran OK.
439 *> -11: LDA < 1 or LDA < MMAX, where MMAX is max( MM(j) ).
440 *> -17: LDB < 1 or LDB < MMAX.
441 *> -21: LDQ < 1 or LDQ < MMAX.
442 *> -23: LDPT< 1 or LDPT< MNMAX.
443 *> -27: LWORK too small.
446 *> absolute value of it is returned.
453 *> ZERO, ONE Real 0 and 1.
454 *> MAXTYP The number of types defined.
456 *> be performed so far, for the current matrix.
457 *> MMAX Largest value in NN.
458 *> NMAX Largest value in NN.
461 *> MNMAX The maximum value of MNMIN for j=1,...,NSIZES.
463 *> COND, IMODE Values to be passed to the matrix generators.
464 *> ANORM Norm of A; passed to matrix generators.
466 *> OVFL, UNFL Overflow and underflow thresholds.
467 *> RTOVFL, RTUNFL Square roots of the previous 2 values.
468 *> ULP, ULPINV Finest relative precision and its inverse.
471 *> KTYPE(j) The general type (1-10) for type "j".
473 *> generator for type "j".
484 *> \author NAG Ltd.
501 * .. Scalar Arguments ..
506 * .. Array Arguments ..
517 * .. Parameters ..
524 * .. Local Scalars ..
537 * .. Local Arrays ..
543 * .. External Functions ..
547 * .. External Subroutines ..
553 * .. Intrinsic Functions ..
556 * .. Scalars in Common ..
561 * .. Common blocks ..
565 * .. Data statements ..
571 * .. Executable Statements ..
586 $ badmm = .true.
589 $ badnn = .true.
832 * Call SGEBRD and SORGBR to compute B, Q, and P, do tests.
837 * B := Q' * A * P.
843 * Check error code from SGEBRD.
867 * Check error code from SORGBR.
881 * Check error code from SORGBR.
890 * Apply Q' to an M by NRHS matrix X: Y := Q' * X.
908 * B := U * S1 * VT, and compute Z = U' * Y.
920 * Check error code from SBDSQR.
935 * bidiagonal matrix B; U, VT, and Z should not be modified.
944 * Check error code from SBDSQR.
1016 * from the bidiagonal form A := Q B PT.
1053 * Check error code from SBDSDC.
1068 * bidiagonal matrix B; U and VT should not be modified.
1077 * Check error code from SBDSDC.
1158 * Check error code from SBDSVDX.
1181 * bidiagonal matrix B; U and VT should not be modified.
1200 * Check error code from SBDSVDX.
1214 * Save S1 for tests 30-34.
1258 * and corresponding vectors.
1285 * Check error code from SBDSVDX.
1308 * bidiagonal matrix B; U and VT should not be modified.
1319 * Check error code from SBDSVDX.
1373 * singular values in this range.
1409 * Check error code from SBDSVDX.
1432 * bidiagonal matrix B; U and VT should not be modified.
1443 * Check error code from SBDSVDX.

References: V.

 V.

 V.

 V.

 V.

 V.