hb2st_kernels(3)
πΈ NAME πΈ
hb2st_kernels β {hb,sb}2st_kernels: band to tridiagonal (2nd stage)
Okay bestie, so this is the hb2st_kernels(3) page from the Library Functions Manual, and it's giving "four Fortran subroutines who all do the same thing in different precisions" energy. Buckle up π
β¨ SYNOPSIS β¨
π Functions
subroutine chb2st_kernels (uplo, wantz, ttype, st, ed, sweep, n, nb, ib, a, lda, v, tau, ldvt, work)β CHB2ST_KERNELSsubroutine dsb2st_kernels (uplo, wantz, ttype, st, ed, sweep, n, nb, ib, a, lda, v, tau, ldvt, work)β DSB2ST_KERNELSsubroutine ssb2st_kernels (uplo, wantz, ttype, st, ed, sweep, n, nb, ib, a, lda, v, tau, ldvt, work)β SSB2ST_KERNELSsubroutine zhb2st_kernels (uplo, wantz, ttype, st, ed, sweep, n, nb, ib, a, lda, v, tau, ldvt, work)β ZHB2ST_KERNELS
Like, all four take the exact same argument list, they just argue about whether your numbers are real, double, complex, or double complex. Classic. π
π¦ Detailed Description π¦
(There's literally no prose under this heading in the original β it just rolls straight into Function Documentation. Respect the minimalism, I guess. β¨)
π Function Documentation π
π subroutine chb2st_kernels (...)
subroutine chb2st_kernels (character uplo, logical wantz, integer ttype,
integer st, integer ed, integer sweep, integer n, integer nb, integer
ib, complex, dimension( lda, * ) a, integer lda, complex, dimension( * )
v, complex, dimension( * ) tau, integer ldvt, complex, dimension( * )
work)
CHB2ST_KERNELS
π« Purpose:
CHB2ST_KERNELSis an internal routine used by theCHETRD_HB2STsubroutine.
Internal, bestie β meaning it's not out here for public consumption, it's a backstage-pass situation for CHETRD_HB2ST. ποΈ
πΈ Parameters
UPLOβUPLOisCHARACTER*1WANTZβWANTZisLOGICALwhich indicate if Eigenvalue are requested or both Eigenvalue/Eigenvectors.TTYPEβTTYPEisINTEGERSTβSTisINTEGER; internal parameter for indices.EDβEDisINTEGER; internal parameter for indices.SWEEPβSWEEPisINTEGER; internal parameter for indices.NβNisINTEGER. The order of the matrixA.NBβNBisINTEGER. The size of the band.IBβIBisINTEGER.AβAisCOMPLEXarray. A pointer to the matrixA.LDAβLDAisINTEGER. The leading dimension of the matrixA.VβVisCOMPLEXarray, dimension2*nif eigenvalues only are requested or to be queried for vectors.TAUβTAUisCOMPLEXarray, dimension(2*n). The scalar factors of the Householder reflectors are stored in this array.LDVTβLDVTisINTEGER.WORKβWORKisCOMPLEXarray. Workspace of sizenb.
π Further Details:
Implemented by Azzam Haidar. π
All details are available on technical report, SC11, SC13 papers.
Azzam Haidar, Hatem Ltaief, and Jack Dongarra. Parallel reduction to condensed forms for symmetric eigenvalue problems using aggregated fine-grained and memory-aware kernels. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '11), New York, NY, USA, Article 8, 11 pages. http://doi.acm.org/10.1145/2063384.2063394
A. Haidar, J. Kurzak, P. Luszczek, 2013. An improved parallel singular value algorithm and its implementation for multicore hardware, In Proceedings of 2013 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '13). Denver, Colorado, USA, 2013. Article 90, 12 pages. http://doi.acm.org/10.1145/2503210.2503292
A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. A novel hybrid CPU-GPU generalized eigensolver for electronic structure calculations based on fine-grained memory aware tasks. International Journal of High Performance Computing Applications. Volume 28 Issue 2, Pages 196-209, May 2014. http://hpc.sagepub.com/content/28/2/196
Definition at line 169 of file chb2st_kernels.f.
π subroutine dsb2st_kernels (...)
subroutine dsb2st_kernels (character uplo, logical wantz, integer ttype,
integer st, integer ed, integer sweep, integer n, integer nb, integer
ib, double precision, dimension( lda, * ) a, integer lda, double
precision, dimension( * ) v, double precision, dimension( * ) tau,
integer ldvt, double precision, dimension( * ) work)
DSB2ST_KERNELS
π« Purpose:
DSB2ST_KERNELSis an internal routine used by theDSYTRD_SB2STsubroutine.
Same vibe, DOUBLE PRECISION edition. π§
πΈ Parameters
UPLOβUPLOisCHARACTER*1WANTZβWANTZisLOGICALwhich indicate if Eigenvalue are requested or both Eigenvalue/Eigenvectors.TTYPEβTTYPEisINTEGERSTβSTisINTEGER; internal parameter for indices.EDβEDisINTEGER; internal parameter for indices.SWEEPβSWEEPisINTEGER; internal parameter for indices.NβNisINTEGER. The order of the matrixA.NBβNBisINTEGER. The size of the band.IBβIBisINTEGER.AβAisDOUBLE PRECISIONarray. A pointer to the matrixA.LDAβLDAisINTEGER. The leading dimension of the matrixA.VβVisDOUBLE PRECISIONarray, dimension2*nif eigenvalues only are requested or to be queried for vectors.TAUβTAUisDOUBLE PRECISIONarray, dimension(2*n). The scalar factors of the Householder reflectors are stored in this array.LDVTβLDVTisINTEGER.WORKβWORKisDOUBLE PRECISIONarray. Workspace of sizenb.
π Further Details:
Implemented by Azzam Haidar. π
All details are available on technical report, SC11, SC13 papers.
Azzam Haidar, Hatem Ltaief, and Jack Dongarra. Parallel reduction to condensed forms for symmetric eigenvalue problems using aggregated fine-grained and memory-aware kernels. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '11), New York, NY, USA, Article 8, 11 pages. http://doi.acm.org/10.1145/2063384.2063394
A. Haidar, J. Kurzak, P. Luszczek, 2013. An improved parallel singular value algorithm and its implementation for multicore hardware, In Proceedings of 2013 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '13). Denver, Colorado, USA, 2013. Article 90, 12 pages. http://doi.acm.org/10.1145/2503210.2503292
A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. A novel hybrid CPU-GPU generalized eigensolver for electronic structure calculations based on fine-grained memory aware tasks. International Journal of High Performance Computing Applications. Volume 28 Issue 2, Pages 196-209, May 2014. http://hpc.sagepub.com/content/28/2/196
Definition at line 169 of file dsb2st_kernels.f.
π subroutine ssb2st_kernels (...)
subroutine ssb2st_kernels (character uplo, logical wantz, integer ttype,
integer st, integer ed, integer sweep, integer n, integer nb, integer
ib, real, dimension( lda, * ) a, integer lda, real, dimension( * ) v,
real, dimension( * ) tau, integer ldvt, real, dimension( * ) work)
SSB2ST_KERNELS
π« Purpose:
SSB2ST_KERNELSis an internal routine used by theSSYTRD_SB2STsubroutine.
Internal again, no cap β this one's the single-precision friend of SSYTRD_SB2ST. π
πΈ Parameters
UPLOβUPLOisCHARACTER*1WANTZβWANTZisLOGICALwhich indicate if Eigenvalue are requested or both Eigenvalue/Eigenvectors.TTYPEβTTYPEisINTEGERSTβSTisINTEGER; internal parameter for indices.EDβEDisINTEGER; internal parameter for indices.SWEEPβSWEEPisINTEGER; internal parameter for indices.NβNisINTEGER. The order of the matrixA.NBβNBisINTEGER. The size of the band.IBβIBisINTEGER.AβAisREALarray. A pointer to the matrixA.LDAβLDAisINTEGER. The leading dimension of the matrixA.VβVisREALarray, dimension2*nif eigenvalues only are requested or to be queried for vectors.TAUβTAUisREALarray, dimension(2*n). The scalar factors of the Householder reflectors are stored in this array.LDVTβLDVTisINTEGER.WORKβWORKisREALarray. Workspace of sizenb.
π Further Details:
(...and this is exactly where the original page cuts off for now β the further details for ssb2st_kernels are coming right up in the next chunk, so don't go anywhere π)
Okay, the last little anchor from ssb2st_kernels.f before we slide into the next one is literally right here: Definition at line 170 of file ssb2st_kernels.f. Keep that in your pocket, bestie.
π zhb2st_kernels
Here's the whole signature, exactly as it shows up, no edits, no remix:
subroutine zhb2st_kernels (character uplo, logical wantz, integer ttype,
integer st, integer ed, integer sweep, integer n, integer nb, integer
ib, complex*16, dimension( lda, * ) a, integer lda, complex*16,
dimension( * ) v, complex*16, dimension( * ) tau, integer ldvt,
complex*16, dimension( * ) work)
ZHB2ST_KERNELS β yes, that's the main character's name, and she is an internal routine. β¨
π¦ Purpose
So ZHB2ST_KERNELS is an internal routine used by the ZHETRD_HB2ST subroutine. That's the whole purpose paragraph β short, sweet, and very "I'm here to do a job, not to explain my whole life story." π
πΈ Parameters
UPLOβ typeCHARACTER*1. That's it. That's the description. Iconic minimalism.WANTZβ typeLOGICAL; it indicates if eigenvalues are requested or both eigenvalues and eigenvectors. Basically: just the numbers, or the numbers and the vectors? πTTYPEβ typeINTEGER. No extra commentary in the original, so no invented lore here.STβ typeINTEGER; the original calls it an "internal parameter for indices."EDβ typeINTEGER; also an "internal parameter for indices."SWEEPβ typeINTEGER; yep, another "internal parameter for indices." The index girls are busy. πNβ typeINTEGER; the order of the matrixA. Main character dimension.NBβ typeINTEGER; the size of the band.IBβ typeINTEGER. That's the description, bestie. No extra details to spill.Aβ typeCOMPLEX*16array; a pointer to the matrixA.LDAβ typeINTEGER; the leading dimension of the matrixA.Vβ typeCOMPLEX*16array, dimension2*nif eigenvalues only are requested, or to be queried for vectors.TAUβ typeCOMPLEX*16array, dimension(2*n). The scalar factors of the Householder reflectors are stored in this array.LDVTβ typeINTEGER. That's all the original gives us.WORKβ typeCOMPLEX*16array; workspace of sizenb.
π Further Details
First up, the official credit: Implemented by Azzam Haidar.
And the original says: All details are available on technical report, SC11, SC13 papers.
Here are the references, preserved exactly because citation details are sacred:
Azzam Haidar, Hatem Ltaief, and Jack Dongarra. Parallel reduction to condensed forms for symmetric eigenvalue problems using aggregated fine-grained and memory-aware kernels. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '11), New York, NY, USA, Article 8 , 11 pages. http://doi.acm.org/10.1145/2063384.2063394
A. Haidar, J. Kurzak, P. Luszczek, 2013. An improved parallel singular value algorithm and its implementation for multicore hardware, In Proceedings of 2013 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '13). Denver, Colorado, USA, 2013. Article 90, 12 pages. http://doi.acm.org/10.1145/2503210.2503292
A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. A novel hybrid CPU-GPU generalized eigensolver for electronic structure calculations based on fine-grained memory aware tasks. International Journal of High Performance Computing Applications. Volume 28 Issue 2, Pages 196-209, May 2014. http://hpc.sagepub.com/content/28/2/196
And the definition line for this one is: Definition at line 169 of file zhb2st_kernels.f. π«Ά
π Author
Generated automatically by Doxygen for LAPACK from the source code. Not me, not you, not the group chat β Doxygen did that. π
This whole page is the hb2st_kernels(3) moment from LAPACK, Version 3.12.0 β source/version noted, date energy included, and yes, she ate. πβ¨
π¦ 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