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. |