.TH "TESTING/EIG/ddrvsg.f" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME TESTING/EIG/ddrvsg.f .SH SYNOPSIS .br .PP .SS "Functions/Subroutines" .in +1c .ti -1c .RI "subroutine \fBddrvsg\fP (nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, ldb, d, z, ldz, ab, bb, ap, bp, work, nwork, iwork, liwork, result, info)" .br .RI "\fBDDRVSG\fP " .in -1c .SH "Function/Subroutine Documentation" .PP .SS "subroutine ddrvsg (integer nsizes, integer, dimension( * ) nn, integer ntypes, logical, dimension( * ) dotype, integer, dimension( 4 ) iseed, double precision thresh, integer nounit, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( ldb, * ) b, integer ldb, double precision, dimension( * ) d, double precision, dimension( ldz, * ) z, integer ldz, double precision, dimension( lda, * ) ab, double precision, dimension( ldb, * ) bb, double precision, dimension( * ) ap, double precision, dimension( * ) bp, double precision, dimension( * ) work, integer nwork, integer, dimension( * ) iwork, integer liwork, double precision, dimension( * ) result, integer info)" .PP \fBDDRVSG\fP .PP \fBPurpose:\fP .RS 4 .PP .nf DDRVSG checks the real symmetric generalized eigenproblem drivers\&. DSYGV computes all eigenvalues and, optionally, eigenvectors of a real symmetric-definite generalized eigenproblem\&. DSYGVD computes all eigenvalues and, optionally, eigenvectors of a real symmetric-definite generalized eigenproblem using a divide and conquer algorithm\&. DSYGVX computes selected eigenvalues and, optionally, eigenvectors of a real symmetric-definite generalized eigenproblem\&. DSPGV computes all eigenvalues and, optionally, eigenvectors of a real symmetric-definite generalized eigenproblem in packed storage\&. DSPGVD computes all eigenvalues and, optionally, eigenvectors of a real symmetric-definite generalized eigenproblem in packed storage using a divide and conquer algorithm\&. DSPGVX computes selected eigenvalues and, optionally, eigenvectors of a real symmetric-definite generalized eigenproblem in packed storage\&. DSBGV computes all eigenvalues and, optionally, eigenvectors of a real symmetric-definite banded generalized eigenproblem\&. DSBGVD computes all eigenvalues and, optionally, eigenvectors of a real symmetric-definite banded generalized eigenproblem using a divide and conquer algorithm\&. DSBGVX computes selected eigenvalues and, optionally, eigenvectors of a real symmetric-definite banded generalized eigenproblem\&. When DDRVSG is called, a number of matrix 'sizes' ('n's') and a number of matrix 'types' are specified\&. For each size ('n') and each type of matrix, one matrix A of the given type will be generated; a random well-conditioned matrix B is also generated and the pair (A,B) is used to test the drivers\&. For each pair (A,B), the following tests are performed: (1) DSYGV with ITYPE = 1 and UPLO ='U': | A Z - B Z D | / ( |A| |Z| n ulp ) (2) as (1) but calling DSPGV (3) as (1) but calling DSBGV (4) as (1) but with UPLO = 'L' (5) as (4) but calling DSPGV (6) as (4) but calling DSBGV (7) DSYGV with ITYPE = 2 and UPLO ='U': | A B Z - Z D | / ( |A| |Z| n ulp ) (8) as (7) but calling DSPGV (9) as (7) but with UPLO = 'L' (10) as (9) but calling DSPGV (11) DSYGV with ITYPE = 3 and UPLO ='U': | B A Z - Z D | / ( |A| |Z| n ulp ) (12) as (11) but calling DSPGV (13) as (11) but with UPLO = 'L' (14) as (13) but calling DSPGV DSYGVD, DSPGVD and DSBGVD performed the same 14 tests\&. DSYGVX, DSPGVX and DSBGVX performed the above 14 tests with the parameter RANGE = 'A', 'N' and 'I', respectively\&. The 'sizes' are specified by an array NN(1:NSIZES); the value of each element NN(j) specifies one size\&. The 'types' are specified by a logical array DOTYPE( 1:NTYPES ); if DOTYPE(j) is \&.TRUE\&., then matrix type 'j' will be generated\&. This type is used for the matrix A which has half-bandwidth KA\&. B is generated as a well-conditioned positive definite matrix with half-bandwidth KB (<= KA)\&. Currently, the list of possible types for A is: (1) The zero matrix\&. (2) The identity matrix\&. (3) A diagonal matrix with evenly spaced entries 1, \&.\&.\&., ULP and random signs\&. (ULP = (first number larger than 1) - 1 ) (4) A diagonal matrix with geometrically spaced entries 1, \&.\&.\&., ULP and random signs\&. (5) A diagonal matrix with 'clustered' entries 1, ULP, \&.\&.\&., ULP and random signs\&. (6) Same as (4), but multiplied by SQRT( overflow threshold ) (7) Same as (4), but multiplied by SQRT( underflow threshold ) (8) A matrix of the form U* D U, where U is orthogonal and D has evenly spaced entries 1, \&.\&.\&., ULP with random signs on the diagonal\&. (9) A matrix of the form U* D U, where U is orthogonal and D has geometrically spaced entries 1, \&.\&.\&., ULP with random signs on the diagonal\&. (10) A matrix of the form U* D U, where U is orthogonal and D has 'clustered' entries 1, ULP,\&.\&.\&., ULP with random signs on the diagonal\&. (11) Same as (8), but multiplied by SQRT( overflow threshold ) (12) Same as (8), but multiplied by SQRT( underflow threshold ) (13) symmetric matrix with random entries chosen from (-1,1)\&. (14) Same as (13), but multiplied by SQRT( overflow threshold ) (15) Same as (13), but multiplied by SQRT( underflow threshold) (16) Same as (8), but with KA = 1 and KB = 1 (17) Same as (8), but with KA = 2 and KB = 1 (18) Same as (8), but with KA = 2 and KB = 2 (19) Same as (8), but with KA = 3 and KB = 1 (20) Same as (8), but with KA = 3 and KB = 2 (21) Same as (8), but with KA = 3 and KB = 3 .fi .PP .PP .nf NSIZES INTEGER The number of sizes of matrices to use\&. If it is zero, DDRVSG does nothing\&. It must be at least zero\&. Not modified\&. NN INTEGER array, dimension (NSIZES) An array containing the sizes to be used for the matrices\&. Zero values will be skipped\&. The values must be at least zero\&. Not modified\&. NTYPES INTEGER The number of elements in DOTYPE\&. If it is zero, DDRVSG does nothing\&. It must be at least zero\&. If it is MAXTYP+1 and NSIZES is 1, then an additional type, MAXTYP+1 is defined, which is to use whatever matrix is in A\&. This is only useful if DOTYPE(1:MAXTYP) is \&.FALSE\&. and DOTYPE(MAXTYP+1) is \&.TRUE\&. \&. Not modified\&. DOTYPE LOGICAL array, dimension (NTYPES) If DOTYPE(j) is \&.TRUE\&., then for each size in NN a matrix of that size and of type j will be generated\&. If NTYPES is smaller than the maximum number of types defined (PARAMETER MAXTYP), then types NTYPES+1 through MAXTYP will not be generated\&. If NTYPES is larger than MAXTYP, DOTYPE(MAXTYP+1) through DOTYPE(NTYPES) will be ignored\&. Not modified\&. ISEED INTEGER array, dimension (4) On entry ISEED specifies the seed of the random number generator\&. The array elements should be between 0 and 4095; if not they will be reduced mod 4096\&. Also, ISEED(4) must be odd\&. The random number generator uses a linear congruential sequence limited to small integers, and so should produce machine independent random numbers\&. The values of ISEED are changed on exit, and can be used in the next call to DDRVSG to continue the same random number sequence\&. Modified\&. THRESH DOUBLE PRECISION A test will count as 'failed' if the 'error', computed as described above, exceeds THRESH\&. Note that the error is scaled to be O(1), so THRESH should be a reasonably small multiple of 1, e\&.g\&., 10 or 100\&. In particular, it should not depend on the precision (single vs\&. double) or the size of the matrix\&. It must be at least zero\&. Not modified\&. NOUNIT INTEGER The FORTRAN unit number for printing out error messages (e\&.g\&., if a routine returns IINFO not equal to 0\&.) Not modified\&. A DOUBLE PRECISION array, dimension (LDA , max(NN)) Used to hold the matrix whose eigenvalues are to be computed\&. On exit, A contains the last matrix actually used\&. Modified\&. LDA INTEGER The leading dimension of A and AB\&. It must be at least 1 and at least max( NN )\&. Not modified\&. B DOUBLE PRECISION array, dimension (LDB , max(NN)) Used to hold the symmetric positive definite matrix for the generalized problem\&. On exit, B contains the last matrix actually used\&. Modified\&. LDB INTEGER The leading dimension of B and BB\&. It must be at least 1 and at least max( NN )\&. Not modified\&. D DOUBLE PRECISION array, dimension (max(NN)) The eigenvalues of A\&. On exit, the eigenvalues in D correspond with the matrix in A\&. Modified\&. Z DOUBLE PRECISION array, dimension (LDZ, max(NN)) The matrix of eigenvectors\&. Modified\&. LDZ INTEGER The leading dimension of Z\&. It must be at least 1 and at least max( NN )\&. Not modified\&. AB DOUBLE PRECISION array, dimension (LDA, max(NN)) Workspace\&. Modified\&. BB DOUBLE PRECISION array, dimension (LDB, max(NN)) Workspace\&. Modified\&. AP DOUBLE PRECISION array, dimension (max(NN)**2) Workspace\&. Modified\&. BP DOUBLE PRECISION array, dimension (max(NN)**2) Workspace\&. Modified\&. WORK DOUBLE PRECISION array, dimension (NWORK) Workspace\&. Modified\&. NWORK INTEGER The number of entries in WORK\&. This must be at least 1+5*N+2*N*lg(N)+3*N**2 where N = max( NN(j) ) and lg( N ) = smallest integer k such that 2**k >= N\&. Not modified\&. IWORK INTEGER array, dimension (LIWORK) Workspace\&. Modified\&. LIWORK INTEGER The number of entries in WORK\&. This must be at least 6*N\&. Not modified\&. RESULT DOUBLE PRECISION array, dimension (70) The values computed by the 70 tests described above\&. Modified\&. INFO INTEGER If 0, then everything ran OK\&. -1: NSIZES < 0 -2: Some NN(j) < 0 -3: NTYPES < 0 -5: THRESH < 0 -9: LDA < 1 or LDA < NMAX, where NMAX is max( NN(j) )\&. -16: LDZ < 1 or LDZ < NMAX\&. -21: NWORK too small\&. -23: LIWORK too small\&. If DLATMR, SLATMS, DSYGV, DSPGV, DSBGV, SSYGVD, SSPGVD, DSBGVD, DSYGVX, DSPGVX or SSBGVX returns an error code, the absolute value of it is returned\&. Modified\&. ---------------------------------------------------------------------- Some Local Variables and Parameters: ---- ----- --------- --- ---------- ZERO, ONE Real 0 and 1\&. MAXTYP The number of types defined\&. NTEST The number of tests that have been run on this matrix\&. NTESTT The total number of tests for this call\&. NMAX Largest value in NN\&. NMATS The number of matrices generated so far\&. NERRS The number of tests which have exceeded THRESH so far (computed by DLAFTS)\&. COND, IMODE Values to be passed to the matrix generators\&. ANORM Norm of A; passed to matrix generators\&. OVFL, UNFL Overflow and underflow thresholds\&. ULP, ULPINV Finest relative precision and its inverse\&. RTOVFL, RTUNFL Square roots of the previous 2 values\&. The following four arrays decode JTYPE: KTYPE(j) The general type (1-10) for type 'j'\&. KMODE(j) The MODE value to be passed to the matrix generator for type 'j'\&. KMAGN(j) The order of magnitude ( O(1), O(overflow^(1/2) ), O(underflow^(1/2) ) .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP .PP Definition at line \fB352\fP of file \fBddrvsg\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.