TESTING/EIG/ssyt21.f(3)
π¦ TESTING/EIG/ssyt21.f(3) π¦
β¨ NAME β¨
TESTING/EIG/ssyt21.f β okay so this page is from the Library Functions Manual, and it's all about SSYT21, no cap. π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ssyt21 (itype, uplo, n, kband, a, lda, d, e, u, ldu, v, ldv,
tau, work, result)
SSYT21
πΈ Function/Subroutine Documentation πΈ
subroutine ssyt21 (integer itype, character uplo, integer n, integer kband,
real, dimension( lda, * ) a, integer lda, real, dimension( * ) d, real,
dimension( * ) e, real, dimension( ldu, * ) u, integer ldu, real,
dimension( ldv, * ) v, integer ldv, real, dimension( * ) tau, real,
dimension( * ) work, real, dimension( 2 ) result)
SSYT21
π Purpose π
okay so SSYT21 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 . β yes, bestie, those blanks are literally in the source, I'm not playing π. And We shall use the letter to refer to the product of Householder transformations (which should be equal to U). (again, blanks are in the original, no cap π).
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). β¨
π Parameters π
ITYPEβITYPE is INTEGER. Specifies the type of tests to be performed.1: U expressed 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: U expressed as a product V of Housholder transformations:
RESULT(1) = | A - V S V**T | / ( |A| n ulp )
3: U expressed 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,SSYT21does 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 REAL 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 REAL array, dimension (N). The diagonal of the (symmetric tri-) diagonal matrix.EβE is REAL 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 REAL 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 REAL 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.LDVβLDV is INTEGER. The leading dimension ofV.LDVmust be at leastNand at least1.TAUβTAU is REAL 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 REAL array, dimension (2*N**2).RESULTβRESULT is REAL 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 at line 205 of file ssyt21.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole vibe, bestie! this page is from LAPACK Version 3.12.0, file TESTING/EIG/ssyt21.f(3), and it was generated automatically by Doxygen for LAPACK from the source code. slay πβ¨
π¦ 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