SSYT21(3)
Welcome to SSYT21(3), bestie! This page lives in the Library Functions Manual, and the source file is /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/ssyt21.f. Buckle up π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/ssyt21.f β the source file for the SSYT21 subroutine, aka the vibe-checker for a symmetric decomposition. π
π¦ 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 shaped like this:
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). Periodt.
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 [blank in the source] and whose scaling constants are in [blank in the source]. We shall use the letter [blank in the source] to refer to the product of Householder transformations (which should be equal to U). Yes, the source really leaves those names blank β we are not inventing anything π.
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:Uexpressed as a dense orthogonal matrix:RESULT(1) = | A - U S U**T | / ( |A| n ulp )andRESULT(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,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.
Catch you later, bestie π«Ά This page is from LAPACK, Version 3.12.0, and the footer path is /home/abui...IG/ssyt21.f(3). No date appears in the footer, so we are not inventing one ππ
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms