DSYT22
   Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
November 2006
November 2006
Purpose
     DSYT22  generally checks a decomposition of the form
A U = U S
where A is symmetric, the columns of U are orthonormal, and S
is diagonal (if KBAND=0) or symmetric tridiagonal (if
KBAND=1). If ITYPE=1, then U is represented as a dense matrix,
otherwise the U is expressed as a product of Householder
transformations, whose vectors are stored in the array "V" and
whose scaling constants are in "TAU"; we shall use the letter
"V" to refer to the product of Householder transformations
(which should be equal to U).
Specifically, if ITYPE=1, then:
RESULT(1) = | U' A U - S | / ( |A| m ulp ) *and*
RESULT(2) = | I - U'U | / ( m ulp )
A U = U S
where A is symmetric, the columns of U are orthonormal, and S
is diagonal (if KBAND=0) or symmetric tridiagonal (if
KBAND=1). If ITYPE=1, then U is represented as a dense matrix,
otherwise the U is expressed as a product of Householder
transformations, whose vectors are stored in the array "V" and
whose scaling constants are in "TAU"; we shall use the letter
"V" to refer to the product of Householder transformations
(which should be equal to U).
Specifically, if ITYPE=1, then:
RESULT(1) = | U' A U - S | / ( |A| m ulp ) *and*
RESULT(2) = | I - U'U | / ( m ulp )
Arguments
| ITYPE | 
 
INTEGER
 
Specifies the type of tests to be performed. 
1: U expressed as a dense orthogonal matrix: RESULT(1) = | A - U S U' | / ( |A| n ulp ) *and* RESULT(2) = | I - UU' | / ( n ulp )  | 
| UPLO | 
 
CHARACTER
 
If UPLO='U', the upper triangle of A will be used and the 
(strictly) lower triangle will not be referenced. If UPLO='L', the lower triangle of A will be used and the (strictly) upper triangle will not be referenced. Not modified.  | 
| N | 
 
INTEGER
 
The size of the matrix.  If it is zero, DSYT22 does nothing. 
It must be at least zero. Not modified.  | 
| M | 
 
INTEGER
 
The number of columns of U.  If it is zero, DSYT22 does 
nothing. It must be at least zero. Not modified.  | 
| KBAND | 
 
INTEGER
 
The bandwidth of the matrix.  It may only be zero or one. 
If zero, then S is diagonal, and E is not referenced. If one, then S is symmetric tri-diagonal. Not modified.  | 
| A | 
 
DOUBLE PRECISION array, dimension (LDA , N)
 
The original (unfactored) matrix.  It is assumed to be 
symmetric, and only the upper (UPLO='U') or only the lower (UPLO='L') will be referenced. Not modified.  | 
| LDA | 
 
INTEGER
 
The leading dimension of A.  It must be at least 1 
and at least N. Not modified.  | 
| D | 
 
DOUBLE PRECISION array, dimension (N)
 
The diagonal of the (symmetric tri-) diagonal matrix. 
Not modified.  | 
| E | 
 
DOUBLE PRECISION array, dimension (N)
 
The off-diagonal of the (symmetric tri-) diagonal matrix. 
E(1) is ignored, E(2) is the (1,2) and (2,1) element, etc. Not referenced if KBAND=0. Not modified.  | 
| U | 
 
DOUBLE PRECISION array, dimension (LDU, N)
 
If ITYPE=1 or 3, this contains the orthogonal matrix in 
the decomposition, expressed as a dense matrix. If ITYPE=2, then it is not referenced. Not modified.  | 
| LDU | 
 
INTEGER
 
The leading dimension of U.  LDU must be at least N and 
at least 1. Not modified.  | 
| V | 
 
DOUBLE PRECISION array, dimension (LDV, N)
 
If ITYPE=2 or 3, the lower triangle of this array contains 
the Householder vectors used to describe the orthogonal matrix in the decomposition. If ITYPE=1, then it is not referenced. Not modified.  | 
| LDV | 
 
INTEGER
 
The leading dimension of V.  LDV must be at least N and 
at least 1. Not modified.  | 
| TAU | 
 
DOUBLE PRECISION array, dimension (N)
 
If ITYPE >= 2, then TAU(j) is the scalar factor of 
v(j) v(j)' in the Householder transformation H(j) of the product U = H(1)...H(n-2) If ITYPE < 2, then TAU is not referenced. Not modified.  | 
| WORK | 
 
DOUBLE PRECISION array, dimension (2*N**2)
 
Workspace. 
Modified.  | 
| RESULT | 
 
DOUBLE PRECISION array, dimension (2)
 
The values computed by the two tests described above.  The 
values are currently limited to 1/ulp, to avoid overflow. RESULT(1) is always modified. RESULT(2) is modified only if LDU is at least N. Modified.  |