TESTING/EIG/dsyt21.f(3)
π NAME π
okay so bestie, welcome to TESTING/EIG/dsyt21.f(3) from the Library Functions Manual π«Ά the actual name is TESTING/EIG/dsyt21.f, and this whole page is about the DSYT21 checker π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine dsyt21 (itype, uplo, n, kband, a, lda, d, e, u, ldu, v, ldv, tau, work, result)βDSYT21π
subroutine dsyt21 (itype, uplo, n, kband, a, lda, d, e, u, ldu, v, ldv,
tau, work, result)
π¦ Function/Subroutine Documentation π¦
subroutine dsyt21 (...)
subroutine dsyt21 (integer itype, character uplo, integer n, integer kband,
double precision, dimension( lda, * ) a, integer lda, double precision,
dimension( * ) d, double precision, dimension( * ) e, double precision,
dimension( ldu, * ) u, integer ldu, double precision, dimension( ldv, *
) v, integer ldv, double precision, dimension( * ) tau, double
precision, dimension( * ) work, double precision, dimension( 2 ) result)
DSYT21 π
Purpose
DSYT21 generally checks a decomposition of the form
A = U S U**T
where **T means transpose, A is symmetric, U is orthogonal, 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 U is expressed as a product of Householder transformations, whose vectors are stored in the array and whose scaling constants are in . We shall use the letter to refer to the product of Householder transformations (which should be equal to U). (the original has blanks right there, so Iβm leaving them blank, iykyk π)
Specifically, if ITYPE=1, then:
RESULT(1) = | A - U S U**T | / ( |A| n ulp ) and
RESULT(2) = | I - U U**T | / ( n ulp )
If ITYPE=2, then:
RESULT(1) = | A - V S V**T | / ( |A| n ulp )
If ITYPE=3, then:
RESULT(1) = | I - V U**T | / ( n ulp )
For ITYPE > 1, the transformation U is expressed as a product
V = H(1)...H(n-2), where H(j) = I - tau(j) v(j) v(j)**T
and each vector v(j) has its first j elements 0 and the remaining n-j elements stored in V(j+1:n,j). π slay math, no cap
Parameters
ITYPEβITYPE is INTEGER. Specifies the type of tests to be performed. π1:Uexpressed as a dense orthogonal matrix:
RESULT(1) = | A - U S U**T | / ( |A| n ulp ) and
RESULT(2) = | I - U U**T | / ( n ulp )
2:Uexpressed as a productVof Housholder transformations:
RESULT(1) = | A - V S V**T | / ( |A| n ulp )
3:Uexpressed both as a dense orthogonal matrix and as a product of Housholder transformations:
RESULT(1) = | I - V U**T | / ( n ulp )
UPLOβUPLO is CHARACTER. IfUPLO='U', the upper triangle ofAandVwill be used and the (strictly) lower triangle will not be referenced. IfUPLO='L', the lower triangle ofAandVwill be used and the (strictly) upper triangle will not be referenced. πΈNβN is INTEGER. The size of the matrix. If it is zero,DSYT21does nothing. It must be at least zero. β¨KBANDβKBAND is INTEGER. The bandwidth of the matrix. It may only be zero or one. If zero, thenSis diagonal, andEis not referenced. If one, thenSis symmetric tri-diagonal. πAβA is 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. πLDAβLDA is INTEGER. The leading dimension ofA. It must be at least1and at leastN. πDβD is DOUBLE PRECISION array, dimension (N). The diagonal of the (symmetric tri-) diagonal matrix. πEβE is DOUBLE PRECISION array, dimension (N-1). The off-diagonal of the (symmetric tri-) diagonal matrix.E(1)is the(1,2)and(2,1)element,E(2)is the(2,3)and(3,2)element, etc. Not referenced ifKBAND=0. π¦UβU is DOUBLE PRECISION array, dimension (LDU, N). IfITYPE=1or3, this contains the orthogonal matrix in the decomposition, expressed as a dense matrix. IfITYPE=2, then it is not referenced. π«ΆLDUβLDU is INTEGER. The leading dimension ofU.LDUmust be at leastNand at least1. πVβV is DOUBLE PRECISION array, dimension (LDV, N). IfITYPE=2or3, the columns of this array contain the Householder vectors used to describe the orthogonal matrix in the decomposition. IfUPLO='L', then the vectors are in the lower triangle, ifUPLO='U', then in the upper triangle. NOTE IfITYPE=2or3,Vis modified and restored. The subdiagonal (ifUPLO='L') or the superdiagonal (ifUPLO='U') is set to one, and later reset to its original value, during the course of the calculation. IfITYPE=1, then it is neither referenced nor modified. π important, bestie!LDVβLDV is INTEGER. The leading dimension ofV.LDVmust be at leastNand at least1. πTAUβTAU is DOUBLE PRECISION array, dimension (N). IfITYPE >= 2, thenTAU(j)is the scalar factor ofv(j) v(j)**Tin the Householder transformationH(j)of the productU = H(1)...H(n-2)IfITYPE < 2, thenTAUis not referenced. π₯WORKβWORK is DOUBLE PRECISION array, dimension (2*N**2). π§RESULTβRESULT is DOUBLE PRECISION array, dimension (2). The values computed by the two tests described above. The values are currently limited to1/ulp, to avoid overflow.RESULT(1)is always modified.RESULT(2)is modified only ifITYPE=1. π
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition
Definition at line 205 of file dsyt21.f. π
π Author π
Generated automatically by Doxygen for LAPACK from the source code. π
okay thatβs the whole glow-up π
the source footer line is LAPACK Version 3.12.0 TESTING/EIG/dsyt21.f(3), and thereβs no separate date shown in the original footer, so Iβm not inventing one β periodt β¨π«Ά
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms