disna(3)

✨ disna(3) ✨

okay bestie, this is the Library Functions Manual page for disna β€” literally disna: eig condition numbers, and she is giving very specific linear-algebra main character energy. Not a command-line tool, just two Fortran routines: ddisna and sdisna. πŸ’–


🌸 NAME 🌸

disna - disna: eig condition numbers

✨ SYNOPSIS ✨

okay so here’s the function lineup, no cap:

πŸŽ€ Functions πŸŽ€

  • subroutine ddisna (job, m, n, d, sep, info) β€” DDISNA
  • subroutine sdisna (job, m, n, d, sep, info) β€” SDISNA

πŸ¦‹ Detailed Description πŸ¦‹

so the Detailed Description section is lowkey just a placeholder here β€” the real tea is in Function Documentation below. No extra prose, no hidden lore, just the two routines. 🫢


πŸ‘‘ Function Documentation πŸ‘‘

πŸ’… ddisna / DDISNA πŸ’…

Signature, exactly:

subroutine ddisna (character job, integer m, integer n, double precision,
       dimension( * ) d, double precision, dimension( * ) sep, integer info)

DDISNA

πŸ’– Purpose πŸ’–

okay so DDISNA computes the reciprocal condition numbers for the eigenvectors of a real symmetric or complex Hermitian matrix, or for the left or right singular vectors of a general m-by-n matrix. The reciprocal condition number is the 'gap' between the corresponding eigenvalue or singular value and the nearest other one. That’s the whole point, and she ate. πŸ’…

The bound on the error, measured by angle in radians, in the I-th computed vector is given by:

DLAMCH( 'E' ) * ( ANORM / SEP( I ) )

where ANORM = 2-norm(A) = max( abs( D(j) ) ). And SEP(I) is not allowed to be smaller than DLAMCH( 'E' )*ANORM in order to limit the size of the error bound. Important caveat, bestie: do not let SEP(I) drop below that, or the error bound gets huge. 😭

DDISNA may also be used to compute error bounds for eigenvectors of the generalized symmetric definite eigenproblem.

πŸŽ€ Parameters πŸŽ€

  • JOB β€” JOB is CHARACTER*1. Specifies for which problem the reciprocal condition numbers should be computed:
    • = 'E': the eigenvectors of a symmetric/Hermitian matrix;
    • = 'L': the left singular vectors of a general matrix;
    • = 'R': the right singular vectors of a general matrix.
  • M β€” M is INTEGER. The number of rows of the matrix. M >= 0.
  • N β€” N is INTEGER. If JOB = 'L' or 'R', the number of columns of the matrix, in which case N >= 0. Ignored if JOB = 'E'.
  • D β€” D is DOUBLE PRECISION array, dimension (M) if JOB = 'E', dimension (min(M,N)) if JOB = 'L' or 'R'. The eigenvalues (if JOB = 'E') or singular values (if JOB = 'L' or 'R') of the matrix, in either increasing or decreasing order. If singular values, they must be non-negative.
  • SEP β€” SEP is DOUBLE PRECISION array, dimension (M) if JOB = 'E', dimension (min(M,N)) if JOB = 'L' or 'R'. The reciprocal condition numbers of the vectors.
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit.
    • < 0: if INFO = -i, the i-th argument had an illegal value.

🌈 Author 🌈

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

⭐ Definition ⭐

Definition at line 116 of file ddisna.f.


πŸ’… sdisna / SDISNA πŸ’…

Signature, exactly:

subroutine sdisna (character job, integer m, integer n, real, dimension( * )
       d, real, dimension( * ) sep, integer info)

SDISNA

πŸ’– Purpose πŸ’–

same energy, single-precision edition: SDISNA computes the reciprocal condition numbers for the eigenvectors of a real symmetric or complex Hermitian matrix, or for the left or right singular vectors of a general m-by-n matrix. The reciprocal condition number is the 'gap' between the corresponding eigenvalue or singular value and the nearest other one. iconic, honestly. ✨

The bound on the error, measured by angle in radians, in the I-th computed vector is given by:

SLAMCH( 'E' ) * ( ANORM / SEP( I ) )

where ANORM = 2-norm(A) = max( abs( D(j) ) ). And SEP(I) is not allowed to be smaller than SLAMCH( 'E' )*ANORM in order to limit the size of the error bound. Same warning, bestie: respect the floor. 🫢

SDISNA may also be used to compute error bounds for eigenvectors of the generalized symmetric definite eigenproblem.

πŸŽ€ Parameters πŸŽ€

  • JOB β€” JOB is CHARACTER*1. Specifies for which problem the reciprocal condition numbers should be computed:
    • = 'E': the eigenvectors of a symmetric/Hermitian matrix;
    • = 'L': the left singular vectors of a general matrix;
    • = 'R': the right singular vectors of a general matrix.
  • M β€” M is INTEGER. The number of rows of the matrix. M >= 0.
  • N β€” N is INTEGER. If JOB = 'L' or 'R', the number of columns of the matrix, in which case N >= 0. Ignored if JOB = 'E'.
  • D β€” D is REAL array, dimension (M) if JOB = 'E', dimension (min(M,N)) if JOB = 'L' or 'R'. The eigenvalues (if JOB = 'E') or singular values (if JOB = 'L' or 'R') of the matrix, in either increasing or decreasing order. If singular values, they must be non-negative.
  • SEP β€” SEP is REAL array, dimension (M) if JOB = 'E', dimension (min(M,N)) if JOB = 'L' or 'R'. The reciprocal condition numbers of the vectors.
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit.
    • < 0: if INFO = -i, the i-th argument had an illegal value.

🌈 Author 🌈

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

⭐ Definition ⭐

Definition at line 116 of file sdisna.f.


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code.


and that’s the whole page, bestie! the footer gives me LAPACK Version 3.12.0 and disna(3) β€” and there’s no date printed on this one, so I’m not gonna invent one. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from