ZPOT03(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… ZPOT03(3) β€” bestie, it's a residual-checking girlie

okay so quick vibe check: this page is zpot03.f(3) and it comes to you straight from the Library Functions Manual β€” LAPACK's very own corner of the man-page universe. buckle up, we're doing linear algebra πŸ’–


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/zpot03.f

like, yes, that's the whole name. it's giving "absolute path as a personality" and honestly? iconic. πŸŽ€


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine ZPOT03 (uplo, n, a, lda, ainv, ldainv, work, ldwork, rwork, rcond, resid) β€” ZPOT03
subroutine ZPOT03 (uplo, n, a, lda, ainv, ldainv, work, ldwork, rwork,
    rcond, resid)
    ZPOT03

πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine ZPOT03 (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( ldainv, * ) ainv, integer ldainv, complex*16, dimension( ldwork, * ) work, integer ldwork, double precision, dimension( * ) rwork, double precision rcond, double precision resid)

ZPOT03 β€” that's her. that's the whole subroutine. πŸ’…


πŸ”₯ Purpose πŸ”₯

!> !> ZPOT03 computes the residual for a Hermitian matrix times its !> inverse: !> norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ), !> where EPS is the machine epsilon. !>

so basically she takes a Hermitian matrix A, and AINV (its inverse), and asks the question we all ask ourselves: did the inverse actually do its job? 😭 she builds I - A*AINV, takes norms, divides by N * norm(A) * norm(AINV) * EPS where EPS is the machine epsilon, and hands you back the residual. no cap, that's the whole plot. πŸ’–


πŸŽ€ Parameters πŸŽ€

  • UPLO
!> UPLO is CHARACTER*1 !> Specifies whether the upper or lower triangular part of the !> Hermitian matrix A is stored: !> = 'U': Upper triangular !> = 'L': Lower triangular

bestie just tell her which triangle of A you bothered to store. 'U' = Upper triangular, 'L' = Lower triangular. pick one, she's not judging. 🫢

  • N
!> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0.

N is INTEGER β€” the number of rows and columns of the matrix A, because square matrices ate and left no crumbs. constraint era: N >= 0. ✨

  • A
!> A is COMPLEX*16 array, dimension (LDA,N) !> The original Hermitian matrix A.

A is COMPLEX*16 array, dimension (LDA,N) β€” the original Hermitian matrix A, in her natural habitat. πŸ’œ

  • LDA
!> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N)

LDA is INTEGER β€” the leading dimension of the array A. the rule is LDA >= max(1,N) and she will be checking. πŸ‘‘

  • AINV
!> AINV is COMPLEX*16 array, dimension (LDAINV,N) !> On entry, the inverse of the matrix A, stored as a Hermitian !> matrix in the same format as A. !> In this version, AINV is expanded into a full matrix and !> multiplied by A, so the opposing triangle of AINV will be !> changed; i.e., if the upper triangular part of AINV is !> stored, the lower triangular part will be used as work space.

AINV is COMPLEX*16 array, dimension (LDAINV,N). on entry, this is the inverse of the matrix A, stored as a Hermitian matrix in the same format as A.

⚠️ heads up though: in this version, AINV gets expanded into a full matrix and multiplied by A, so the opposing triangle of AINV will be changed. i.e., if the upper triangular part of AINV is stored, the lower triangular part gets used as work space. so like… it's not coming back the same. πŸ™ˆ know before you go, iykyk.
  • LDAINV
!> LDAINV is INTEGER !> The leading dimension of the array AINV. LDAINV >= max(1,N).

LDAINV is INTEGER β€” the leading dimension of the array AINV. requirement: LDAINV >= max(1,N). no exceptions, bestie. ⭐

  • WORK
!> WORK is COMPLEX*16 array, dimension (LDWORK,N)

WORK is COMPLEX*16 array, dimension (LDWORK,N) β€” her little scratchpad era. 🧚

  • LDWORK
!> LDWORK is INTEGER !> The leading dimension of the array WORK. LDWORK >= max(1,N).

LDWORK is INTEGER β€” the leading dimension of the array WORK, and yes, LDWORK >= max(1,N). the math is mathing. 🌈

  • RWORK
!> RWORK is DOUBLE PRECISION array, dimension (N)

RWORK is DOUBLE PRECISION array, dimension (N) β€” real-valued work space, living her simple life. πŸ“

  • RCOND
!> RCOND is DOUBLE PRECISION !> The reciprocal of the condition number of A, computed as !> ( 1/norm(A) ) / norm(AINV).

RCOND is DOUBLE PRECISION β€” the reciprocal of the condition number of A, computed as ( 1/norm(A) ) / norm(AINV). reciprocal girlie. πŸ’«

  • RESID
!> RESID is DOUBLE PRECISION !> norm(I - A*AINV) / ( N * norm(A) * norm(AINV) * EPS )

RESID is DOUBLE PRECISION β€” the final answer, the main character: norm(I - A*AINV) / ( N * norm(A) * norm(AINV) * EPS ). πŸ”₯


πŸ‘‘ Author πŸ‘‘

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

the whole squad showed up. group project but everyone actually pulled their weight for once πŸ’€πŸ’–

Definition at line 124 of file zpot03.f.


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code. (yes she was written by a robot and she still has more personality than half the codebase, we love to see it πŸŽ€)


and that's the whole page bestie, every flag, every bound, every triangle, nothing skipped β€” periodt. πŸ’…

signing off: LAPACK, Version 3.12.0, dated /home/abui...IN/zpot03.f(3) β€” mwah, go compile something beautiful πŸ¦‹

πŸ“¦ where this page comes from