SRC/zhpev.f(3)
β¨ SRC/zhpev.f β¨
okay bestie, buckle up, because we're diving into some LAPACK realness π
π SYNOPSIS π
Functions/Subroutines
subroutine zhpev (jobz, uplo, n, ap, w, z, ldz, work, rwork, info)
ZHPEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
π Function/Subroutine Documentation π
subroutine zhpev (character jobz, character uplo, integer n, complex*16, dimension( * ) ap, double precision, dimension( * ) w, complex*16, dimension( ldz, * ) z, integer ldz, complex*16, dimension( * ) work, double precision, dimension( * ) rwork, integer info)
ZHPEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
π¦ Purpose:
no cap, here's the tea:
ZHPEV computes all the eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix in packed storage.
literally iconic β¨
πΈ Parameters πΈ
JOBZ
okay so JOBZ is CHARACTER*1 and it tells us what we're doing:
= 'N': Compute eigenvalues only (just the vibes, no vectors);= 'V': Compute eigenvalues and eigenvectors (the whole package, periodt).
UPLO
UPLO is CHARACTER*1, and it's giving "which triangle are we working with?" energy:
= 'U': Upper triangle ofAis stored;= 'L': Lower triangle ofAis stored.
N
N is INTEGER. It's the order of the matrix A. So like, N >= 0 bestie, don't come at me with negative numbers π
AP
AP is COMPLEX*16 array, dimension (N*(N+1)/2). On entry, it's holding the upper or lower triangle of the Hermitian matrix A, packed columnwise in a linear array. The way this works is:
The j-th column of A is stored in the array AP as follows:
- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2*n-j)/2) = A(i,j)forj<=i<=n.
On exit though, AP is overwritten by values generated during the reduction to tridiagonal form π like it gets a whole glow-up. If UPLO = 'U', the diagonal and first superdiagonal of the tridiagonal matrix T overwrite the corresponding elements of A. And if UPLO = 'L', the diagonal and first subdiagonal of T overwrite the corresponding elements of A. So yeah, AP goes through some changes, iykyk.
W
W is DOUBLE PRECISION array, dimension (N). If INFO = 0, it contains the eigenvalues in ascending order. slay.
Z
Z is COMPLEX*16 array, dimension (LDZ, N). If JOBZ = 'V', then if INFO = 0, Z contains the orthonormal eigenvectors of the matrix A, with the i-th column of Z holding the eigenvector associated with W(i). If JOBZ = 'N', then Z is not referenced β it's literally just vibing in the background, not invited to the party π«Ά
LDZ
LDZ is INTEGER. It's the leading dimension of the array Z. So like, LDZ >= 1, and if JOBZ = 'V', then LDZ >= max(1,N). Don't mess this up bestie.
WORK
WORK is COMPLEX*16 array, dimension (max(1, 2*N-1)). It's doing its thing behind the scenes π
RWORK
RWORK is DOUBLE PRECISION array, dimension (max(1, 3*N-2)). Same energy β just working hard so you don't have to.
INFO
INFO is INTEGER, and it's giving "here's what happened" realness:
= 0: successful exit β we ate and left no crumbs π< 0: ifINFO = -i, the i-th argument had an illegal value β not me making a mistake π> 0: ifINFO = i, the algorithm failed to converge; i off-diagonal elements of an intermediate tridiagonal form did not converge to zero. it's giving "the vibes were off" π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 136 of file zhpev.f.
β¨ Author (again, because she's iconic) β¨
Generated automatically by Doxygen for LAPACK from the source code. no cap, that's just how we do it around here π
okay bestie, that's the whole manual page. you're now officially an expert on zhpev.f. go forth and compute those eigenvalues and eigenvectors like the main character you are π¦β¨
this masterpiece was generated by Doxygen for LAPACK from the source code, and it's serving LAPACK Version 3.12.0 realness. 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