SRC/dsyev_2stage.f(3)
π SRC/dsyev_2stage.f π
okay so bestie, welcome to dsyev_2stage β this is the LAPACK manual page for it, and I'm gonna walk you through every single bit, no cap. it's giving β¨serious linear algebraβ¨ but make it cute.
πΈ NAME πΈ
SRC/dsyev_2stage.f β yes that's literally the name, it's a Fortran source file page and we love her for it π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine dsyev_2stage (jobz, uplo, n, a, lda, w, work, lwork, info)β DSYEV_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for SY matrices π¦
π Function/Subroutine Documentation π
subroutine dsyev_2stage (character jobz, character uplo, integer n, double
precision, dimension( lda, * ) a, integer lda, double precision,
dimension( * ) w, double precision, dimension( * ) work, integer lwork,
integer info)
DSYEV_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for SY matrices π₯
π« Purpose:
!>
!> DSYEV_2STAGE computes all eigenvalues and, optionally, eigenvectors of a
!> real symmetric matrix A using the 2stage technique for
!> the reduction to tridiagonal.
!>
so like, it finds all the eigenvalues (and maybe the eigenvectors if you ask nicely) of a real symmetric matrix A, and it does it with the 2stage technique for the reduction to tridiagonal. iconic. π
π«Ά Parameters π«Ά
JOBZβ it's aCHARACTER*1, bestie. here's the tea:
!> JOBZ is CHARACTER*1
!> = 'N': Compute eigenvalues only;
!> = 'V': Compute eigenvalues and eigenvectors.
!> Not available in this release.
!>
β οΈ heads up: 'V' is not available in this release β so don't come for me when it doesn't work, okay? π
UPLOβ alsoCHARACTER*1, telling us which triangle is the moment:
!> UPLO is CHARACTER*1
!> = 'U': Upper triangle of A is stored;
!> = 'L': Lower triangle of A is stored.
!>
Nβ anINTEGER, the order of the matrixA, andN >= 0. that's it, that's the vibe check π
!> N is INTEGER
!> The order of the matrix A. N >= 0.
!>
Aβ aDOUBLE PRECISIONarray, dimension(LDA, N). here's the whole story:
!> A is DOUBLE PRECISION array, dimension (LDA, N)
!> On entry, the symmetric matrix A. If UPLO = 'U', the
!> leading N-by-N upper triangular part of A contains the
!> upper triangular part of the matrix A. If UPLO = 'L',
!> the leading N-by-N lower triangular part of A contains
!> the lower triangular part of the matrix A.
!> On exit, if JOBZ = 'V', then if INFO = 0, A contains the
!> orthonormal eigenvectors of the matrix A.
!> If JOBZ = 'N', then on exit the lower triangle (if UPLO='L')
!> or the upper triangle (if UPLO='U') of A, including the
!> diagonal, is destroyed.
!>
π read that last part again β with JOBZ = 'N', the triangle you fed in (plus the diagonal!) gets destroyed on exit. she does not survive. protect your data accordingly.
LDAβINTEGER, the leading dimension of the arrayA, andLDA >= max(1,N).
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,N).
!>
WβDOUBLE PRECISIONarray, dimension(N). ifINFO = 0, you get the eigenvalues in ascending order. sorted, slay π
!> W is DOUBLE PRECISION array, dimension (N)
!> If INFO = 0, the eigenvalues in ascending order.
!>
WORKβDOUBLE PRECISIONarray, dimension(MAX(1,LWORK)). on exit, ifINFO = 0, thenWORK(1)returns the optimalLWORKπ
!> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
!> On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
!>
LWORKβINTEGER, the length of the arrayWORK. okay this one's the main character and she has LORE:
!> LWORK is INTEGER
!> The length of the array WORK. LWORK >= 1, when N <= 1;
!> otherwise
!> If JOBZ = 'N' and N > 1, LWORK must be queried.
!> LWORK = MAX(1, dimension) where
!> dimension = max(stage1,stage2) + (KD+1)*N + 2*N
!> = N*KD + N*max(KD+1,FACTOPTNB)
!> + max(2*KD*KD, KD*NTHREADS)
!> + (KD+1)*N + 2*N
!> where KD is the blocking size of the reduction,
!> FACTOPTNB is the blocking used by the QR or LQ
!> algorithm, usually FACTOPTNB=128 is a good choice
!> NTHREADS is the number of threads used when
!> openMP compilation is enabled, otherwise =1.
!> If JOBZ = 'V' and N > 1, LWORK must be queried. Not yet available
!>
!> If LWORK = -1, then a workspace query is assumed; the routine
!> only calculates the optimal size of the WORK array, returns
!> this value as the first entry of the WORK array, and no error
!> message related to LWORK is issued by XERBLA.
!>
π so real talk:LWORK >= 1whenN <= 1; otherwise, ifJOBZ = 'N'andN > 1, you must queryLWORK. and ifJOBZ = 'V'andN > 1, you must query too β but that's not yet available. also:LWORK = -1means a workspace query, where the routine only calculates the optimal size ofWORK, returns it as the first entry ofWORK, and XERBLA issues no error message aboutLWORK. iykyk π
INFOβINTEGER, the receipts:
!> INFO is INTEGER
!> = 0: successful exit
!> < 0: if INFO = -i, the i-th argument had an illegal value
!> > 0: if INFO = i, the algorithm failed to converge; i
!> off-diagonal elements of an intermediate tridiagonal
!> form did not converge to zero.
!>
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad ate, fr fr π«Ά
π§ Further Details: π§
!>
!> All details about the 2stage techniques are available in:
!>
!> 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
!>
!>
like, the full bibliography is right there β go read the papers if you wanna know everything about the 2stage technique, bestie πβ¨
Definition at line 181 of file dsyev_2stage.f.
π sign-off π
this page was Generated automatically by Doxygen for LAPACK from the source code β so nobody hand-wrote it, it just appeared, main character energy honestly.
and the footer tea: LAPACK, Version 3.12.0, from SRC/dsyev_2stage.f(3). 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