/home/abui...sytri_3x.f(3)

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

πŸ’– NAME πŸ’–

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dsytri_3x.f

okay so bestie, that's the whole file path right there β€” that's literally the name of this page, it's a Fortran source file from LAPACK 3.12.0 and it's the icon, the moment, the main character of this manpage ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

  • subroutine DSYTRI_3X (uplo, n, a, lda, e, ipiv, work, nb, info) β€” DSYTRI_3X

🌸 Function/Subroutine Documentation 🌸

subroutine DSYTRI_3X (character uplo, integer n, double precision,
    dimension( lda, * ) a, integer lda, double precision, dimension( * ) e,
    integer, dimension( * ) ipiv, double precision, dimension( n+nb+1, * )
    work, integer nb, integer info)

DSYTRI_3X β€” say it with me, bestie πŸ‘‘

πŸ’… Purpose πŸ’…

DSYTRI_3X computes the inverse of a real symmetric indefinite matrix A using the factorization computed by DSYTRF_RK or DSYTRF_BK:
A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix, U**T (or L**T) is the transpose of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

Literally so much going on and yet? she ate. πŸ”₯

This is the blocked version of the algorithm, calling Level 3 BLAS.

blocked version, Level 3 BLAS, we love efficiency in this house fr fr πŸ’œ

πŸŽ€ Parameters πŸŽ€

UPLO

UPLO is CHARACTER*1 Specifies whether the details of the factorization are stored as an upper or lower triangular matrix. - = 'U': Upper triangle of A is stored; - = 'L': Lower triangle of A is stored.

pick your fighter bestie, upper or lower, no in-between πŸ¦‹

N

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

the size of the situation. non-negative only, we don't do negative orders here πŸ™ˆ

A

A is DOUBLE PRECISION array, dimension (LDA,N) On entry, diagonal of the block diagonal matrix D and factors U or L as computed by DSYTRF_RK and DSYTRF_BK: - a) ONLY diagonal elements of the symmetric block diagonal matrix D on the diagonal of A, i.e. D(k,k) = A(k,k); (superdiagonal (or subdiagonal) elements of D should be provided on entry in array E), and - b) If UPLO = 'U': factor U in the superdiagonal part of A. If UPLO = 'L': factor L in the subdiagonal part of A. On exit, if INFO = 0, the symmetric inverse of the original matrix. - If UPLO = 'U': the upper triangular part of the inverse is formed and the part of A below the diagonal is not referenced; - If UPLO = 'L': the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced.

so on entry she's holding D's diagonal + the factors, and on exit (if INFO = 0) she's serving you the actual inverse. only ONE triangle gets referenced β€” the other half is literally not invited to the function πŸ’€

LDA

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

respect the leading dimension or else, that's the rule 🫢

E

E is DOUBLE PRECISION array, dimension (N) On entry, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D with 1-by-1 or 2-by-2 diagonal blocks, where - If UPLO = 'U': E(i) = D(i-1,i), i=2:N, E(1) not referenced; - If UPLO = 'L': E(i) = D(i+1,i), i=1:N-1, E(N) not referenced. NOTE: For 1-by-1 diagonal block D(k), where 1 <= k <= N, the element E(k) is not referenced in both UPLO = 'U' or UPLO = 'L' cases.

the off-diagonal bestie πŸ’– also note the little "not referenced" situations, they're real and they matter, don't @ me.

IPIV

IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by DSYTRF_RK or DSYTRF_BK.

the receipts from whoever did the factorization πŸ‘‘

WORK

WORK is DOUBLE PRECISION array, dimension (N+NB+1,NB+3).

workspace, she's got a very specific dimension and she's not flexible about it ✨

NB

NB is INTEGER Block size.

that's the block size. short and iconic, no notes.

INFO

INFO is INTEGER - = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value - > 0: if INFO = i, D(i,i) = 0; the matrix is singular and its inverse could not be computed.

ngl the > 0 case is the sad one 😭 singular matrix means no inverse, that's just how it is.

🌈 Author 🌈

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

the whole squad came together for this one 🫢

⭐ Contributors: ⭐

June 2017, Igor Kozachenko, Computer Science Division, University of California, Berkeley

shoutout Igor, June 2017, we see you and we appreciate you πŸ’œ

🧚 Definition at line 158 of file dsytri_3x.f. 🧚

yep, line 158, that's where she lives.


πŸ“ Author πŸ“

Generated automatically by Doxygen for LAPACK from the source code. (the robots did this part, we just made it cute πŸ’…)


LAPACK β€” Version 3.12.0 πŸŽ€ and that's the whole page bestie, /home/abui...sytri_3x.f(3), mwah, bye πŸ‘‘βœ¨

πŸ“¦ where this page comes from