TESTING/EIG/sget51.f(3)

πŸ“¦
version 3.12.1 Β· 3 versions
, in arch rolling

πŸ’… TESTING/EIG/sget51.f πŸ’…

okay bestie, this is the Library Functions Manual page for TESTING/EIG/sget51.f β€” yes, the whole file path is the name, we don't make the rules. It's giving LAPACK testing-core energy. πŸ¦‹

✨ NAME ✨

TESTING/EIG/sget51.f β€” the SGET51 test routine, and honestly that's the whole name section. Short, iconic, no notes. πŸŽ€

πŸŽ€ SYNOPSIS πŸŽ€

Functions/Subroutines

subroutine sget51 (itype, n, a, lda, b, ldb, u, ldu, v, ldv, work, result)

SGET51

πŸ’– Function/Subroutine Documentation πŸ’–

subroutine sget51 (integer itype, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b, integer ldb, real, dimension( ldu, * ) u, integer ldu, real, dimension( ldv, * ) v, integer ldv, real, dimension( * ) work, real result)

SGET51

πŸ¦‹ Purpose πŸ¦‹

The source doc block has a !> on basically every line β€” that's just the Fortran doc-comment aesthetic ✨ β€” but the actual tea is this: SGET51 generally checks a decomposition of the form

A = U B V'

where ' means transpose and U and V are orthogonal. No cap. πŸ’…

Specifically, if ITYPE=1:

RESULT = | A - U B V' | / ( |A| n ulp )

If ITYPE=2, then:

RESULT = | A - B | / ( |A| n ulp )

If ITYPE=3, then:

RESULT = | I - UU' | / ( n ulp )

That's the whole vibe check. 🫢

🌸 Parameters 🌸

  • ITYPE β€” ITYPE is INTEGER. It specifies the type of tests to be performed. The levels are:
    • =1: RESULT = | A - U B V' | / ( |A| n ulp )
    • =2: RESULT = | A - B | / ( |A| n ulp )
    • =3: RESULT = | I - UU' | / ( n ulp )
  • N β€” N is INTEGER. It's the size of the matrix. If it is zero, SGET51 does nothing (respectfully, it clocks out). It must be at least zero.
  • A β€” A is a REAL array, dimension (LDA, N). It's the original (unfactored) matrix.
  • LDA β€” LDA is INTEGER. It's the leading dimension of A. It must be at least 1 and at least N.
  • B β€” B is a REAL array, dimension (LDB, N). It's the factored matrix.
  • LDB β€” LDB is INTEGER. It's the leading dimension of B. It must be at least 1 and at least N.
  • U β€” U is a REAL array, dimension (LDU, N). It's the orthogonal matrix on the left-hand side in the decomposition. Not referenced if ITYPE=2.
  • LDU β€” LDU is INTEGER. It's the leading dimension of U. LDU must be at least N and at least 1.
  • V β€” V is a REAL array, dimension (LDV, N). It's the orthogonal matrix on the left-hand side in the decomposition. Not referenced if ITYPE=2.
  • LDV β€” LDV is INTEGER. It's the leading dimension of V. LDV must be at least N and at least 1.
  • WORK β€” WORK is a REAL array, dimension (2*N**2).
  • RESULT β€” RESULT is REAL. These are the values computed by the test specified by ITYPE. The value is currently limited to 1/ulp, to avoid overflow. Errors are flagged by RESULT=10/ulp.

πŸ‘‘ Author πŸ‘‘

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

Definition at line 147 of file sget51.f.

🧚 Author 🧚

Generated automatically by Doxygen for LAPACK from the source code. Doxygen really said β€œI’ll do it myself.” 😭


okay bestie, that's the page πŸ’– source/version: LAPACK Version 3.12.0; footer page: TESTING/EIG/sget51.f(3). The footer date is not listed, so I'm not inventing one β€” we don't do fanfic facts here. Bye 🫢✨

πŸ“¦ where this page comes from