stevd(3)

✨ NAME ✨ β€” stevd(3) from the Library Functions Manual, bestie

okay so this page is about stevd β€” short and iconic: stevd: eig, divide and conquer. That’s the whole NAME section, and yes, it ate. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

This page lists Functions, and there are exactly two subroutines on the menu. Both have the same short signature shape, bestie:

subroutine dstevd (jobz, n, d, e, z, ldz, work, lwork, iwork, liwork,
           info)

The dstevd one-liner says: DSTEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices.

subroutine sstevd (jobz, n, d, e, z, ldz, work, lwork, iwork, liwork,
           info)

And the sstevd one-liner says: SSTEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices.

🌸 Functions 🌸

  • subroutine dstevd β€” the DOUBLE PRECISION flavor. Its synopsis is above, and its full tea is down in Function Documentation.
  • subroutine sstevd β€” the REAL flavor. Same synopsis shape, same energy, different precision.

πŸ’« Detailed Description πŸ’«

This section is literally just a heading in the source, bestie β€” there’s no extra description prose here. The actual function details live under Function Documentation. 🫢


πŸ‘‘ Function Documentation πŸ‘‘

🌟 subroutine dstevd 🌟

subroutine dstevd (character jobz, integer n, double precision, dimension( *
       ) d, double precision, dimension( * ) e, double precision, dimension(
       ldz, * ) z, integer ldz, double precision, dimension( * ) work, integer
       lwork, integer, dimension( * ) iwork, integer liwork, integer info)

The page’s description for this one is: DSTEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices.

πŸŽ€ Purpose

DSTEVD computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix. If eigenvectors are desired, it uses a divide and conquer algorithm. That’s the whole vibe β€” eigenvalues always, eigenvectors if you ask nicely with JOBZ. ✨

🧚 Parameters

  • JOBZ β€” this is CHARACTER*1.
    • = 'N': Compute eigenvalues only;
    • = 'V': Compute eigenvalues and eigenvectors.
  • N β€” INTEGER. The order of the matrix. N >= 0.
  • D β€” DOUBLE PRECISION array, dimension (N). On entry, the n diagonal elements of the tridiagonal matrix A. On exit, if INFO = 0, the eigenvalues in ascending order.
  • E β€” DOUBLE PRECISION array, dimension (N-1). On entry, the (n-1) subdiagonal elements of the tridiagonal matrix A, stored in elements 1 to N-1 of E. On exit, the contents of E are destroyed.
Heads up, bestie: on exit the contents of E are destroyed. That’s not a drill, that’s the spec. πŸ’€
  • Z β€” DOUBLE PRECISION 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 D(i). If JOBZ = 'N', then Z is not referenced.
  • LDZ β€” INTEGER. The leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', LDZ >= max(1,N).
  • WORK β€” DOUBLE PRECISION array, dimension (LWORK). On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  • LWORK β€” INTEGER. The dimension of the array WORK.
    • If JOBZ = 'N' or N <= 1 then LWORK must be at least 1.
    • If JOBZ = 'V' and N > 1 then LWORK must be at least ( 1 + 4*N + N**2 ).
    • If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA.
  • IWORK β€” INTEGER array, dimension (MAX(1,LIWORK)). On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
  • LIWORK β€” INTEGER. The dimension of the array IWORK.
    • If JOBZ = 'N' or N <= 1 then LIWORK must be at least 1.
    • If JOBZ = 'V' and N > 1 then LIWORK must be at least 3+5*N.
    • If LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA.
  • INFO β€” 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 E did not converge to zero.

πŸ’œ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 155 of file dstevd.f.


🌟 subroutine sstevd 🌟

subroutine sstevd (character jobz, integer n, real, dimension( * ) d, real,
       dimension( * ) e, real, dimension( ldz, * ) z, integer ldz, real,
       dimension( * ) work, integer lwork, integer, dimension( * ) iwork,
       integer liwork, integer info)

The page’s description for this one is: SSTEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices.

πŸŽ€ Purpose

SSTEVD computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix. If eigenvectors are desired, it uses a divide and conquer algorithm. Same iconic behavior as its d sibling, just in REAL. πŸ¦‹

🧚 Parameters

  • JOBZ β€” this is CHARACTER*1.
    • = 'N': Compute eigenvalues only;
    • = 'V': Compute eigenvalues and eigenvectors.
  • N β€” INTEGER. The order of the matrix. N >= 0.
  • D β€” REAL array, dimension (N). On entry, the n diagonal elements of the tridiagonal matrix A. On exit, if INFO = 0, the eigenvalues in ascending order.
  • E β€” REAL array, dimension (N-1). On entry, the (n-1) subdiagonal elements of the tridiagonal matrix A, stored in elements 1 to N-1 of E. On exit, the contents of E are destroyed.
Again, not me warning you twice: the contents of E are destroyed on exit. 🫠
  • Z β€” REAL 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 D(i). If JOBZ = 'N', then Z is not referenced.
  • LDZ β€” INTEGER. The leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', LDZ >= max(1,N).
  • WORK β€” REAL array, dimension (LWORK). On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  • LWORK β€” INTEGER. The dimension of the array WORK.
    • If JOBZ = 'N' or N <= 1 then LWORK must be at least 1.
    • If JOBZ = 'V' and N > 1 then LWORK must be at least ( 1 + 4*N + N**2 ).
    • If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA.
  • IWORK β€” INTEGER array, dimension (MAX(1,LIWORK)). On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
  • LIWORK β€” INTEGER. The dimension of the array IWORK.
    • If JOBZ = 'N' or N <= 1 then LIWORK must be at least 1.
    • If JOBZ = 'V' and N > 1 then LIWORK must be at least 3+5*N.
    • If LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA.
  • INFO β€” 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 E did not converge to zero.

πŸ’œ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 155 of file sstevd.f.


πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for LAPACK from the source code.


okay bestie, that’s the whole page! Footer tea: source/version is LAPACK Version 3.12.0, and the date slot is literally just the manual tag stevd(3) β€” no separate date shown. πŸŽ€πŸ’–πŸ«Ά

πŸ“¦ where this page comes from