ZTRT01(3)

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

πŸ’… ZTRT01(3) β€” like, the manual page, bestie

okay so real talk: this is from the Library Functions Manual, and the file lives at /home/abui...IN/ztrt01.f(3). iconic path, slightly cursed, we move.

✨ NAME ✨

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

like, that's the whole name. it's a whole journey. the file is literally the name. periodt.


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine ZTRT01 (uplo, diag, n, a, lda, ainv, ldainv, rcond, rwork,
    resid)

ZTRT01


πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

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

ZTRT01

πŸŽ€ Purpose πŸŽ€

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

like yes bestie, it's a vibe check on whether A and AINV are actually inverses. math queen behavior πŸ’…


🌸 Parameters 🌸

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

so you literally just tell it which triangle we're living in. 'U' for upper, 'L' for lower, no in-between 🫢

  • DIAG
!> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !>

'N' means non-unit, 'U' means unit. one character, big consequences, we love a minimal icon ✨

  • N
!> N is INTEGER !> The order of the matrix A. N >= 0. !>

the order of the matrix, and it's gotta be N >= 0. negative N is NOT the move πŸ’€

  • A
!> A is COMPLEX*16 array, dimension (LDA,N) !> The triangular matrix A. If UPLO = 'U', the leading n by n !> upper triangular part of the array A contains the upper !> triangular matrix, and the strictly lower triangular part of !> A is not referenced. If UPLO = 'L', the leading n by n lower !> triangular part of the array A contains the lower triangular !> matrix, and the strictly upper triangular part of A is not !> referenced. If DIAG = 'U', the diagonal elements of A are !> also not referenced and are assumed to be 1. !>

okay so: COMPLEX*16 array, dimension (LDA,N). if UPLO = 'U', the leading n by n upper triangular part holds the matrix and the strictly lower triangular part is literally not referenced (ignored, ghosted, uninvited). if UPLO = 'L', flip that β€” leading n by n lower triangular part holds it, strictly upper triangular part is not referenced. and if DIAG = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. assuming, bestie. they never even check. πŸ™ˆ

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

leading dimension of A, and it must be LDA >= max(1,N). rules are rules πŸŽ€

  • AINV
!> AINV is COMPLEX*16 array, dimension (LDAINV,N) !> On entry, the (triangular) inverse of the matrix A, in the !> same storage format as A. !> On exit, the contents of AINV are destroyed. !>

on entry it's the (triangular) inverse of A, stored the same way as A. on exit? the contents of AINV are destroyed. not me being dramatic, that's literally what it says 😭 so like, don't get attached πŸ’€

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

leading dimension of AINV, LDAINV >= max(1,N). same energy as LDA, different letter πŸ¦‹

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

DOUBLE PRECISION, the reciprocal condition number of A, computed as 1/(norm(A) * norm(AINV)). cute little fraction, very demure ✨

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

DOUBLE PRECISION array, dimension (N). it's the workspace, it's doing its thing, we respect it πŸ’œ

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

DOUBLE PRECISION, and it comes out as norm(A*AINV - I) / ( N * norm(A) * norm(AINV) * EPS ). that's the whole point of the function, this is the main character right here πŸ‘‘


πŸ’– Author πŸ’–

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

four whole institutions, collaborating, for this. slay 🫢

Definition at line 123 of file ztrt01.f.


🌈 Author (again, yes really) 🌈

Generated automatically by Doxygen for LAPACK from the source code.

like nobody hand-wrote this, a robot did it, and honestly? it ate πŸ€–βœ¨


mwah πŸ’‹ that's the whole page, no notes. LAPACK, Version 3.12.0, footer date /home/abui...IN/ztrt01.f(3) β€” go forth and compute residuals, bestie πŸŽ€πŸ’œπŸŒΈ

πŸ“¦ where this page comes from