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

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

πŸ’… /home/abui...nvf_rook.f(3) β€” Library Functions Manual ✨

okay so bestie, this page lives in the Library Functions Manual section and it's literally all about one LAPACK subroutine, so buckle up πŸŽ€


🌸 NAME 🌸

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

yes, the NAME is a whole entire file path. iconic of her, honestly. that's the source file, no cap πŸ’…


✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines

subroutine CSYCONVF_ROOK (uplo, way, n, a, lda, e, ipiv, info)

CSYCONVF_ROOK β€” that's her, that's the whole function 🫢


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

subroutine CSYCONVF_ROOK (character uplo, character way, integer n, complex,
    dimension( lda, * ) a, integer lda, complex, dimension( * ) e, integer,
    dimension( * ) ipiv, integer info)

CSYCONVF_ROOK πŸ’–

🧚 Purpose:

If parameter WAY = 'C': CSYCONVF_ROOK converts the factorization output format used in CSYTRF_ROOK provided on entry in parameter A into the factorization output format used in CSYTRF_RK (or CSYTRF_BK) that is stored on exit in parameters A and E. IPIV format for CSYTRF_ROOK and CSYTRF_RK (or CSYTRF_BK) is the same and is not converted. If parameter WAY = 'R': CSYCONVF_ROOK performs the conversion in reverse direction, i.e. converts the factorization output format used in CSYTRF_RK (or CSYTRF_BK) provided on entry in parameters A and E into the factorization output format used in CSYTRF_ROOK that is stored on exit in parameter A. IPIV format for CSYTRF_ROOK and CSYTRF_RK (or CSYTRF_BK) is the same and is not converted. CSYCONVF_ROOK can also convert in Hermitian matrix case, i.e. between formats used in CHETRF_ROOK and CHETRF_RK (or CHETRF_BK).

so basically she's a translator between two friend groups of factorization formats, and she can go both ways, and the IPIV format just... stays the same the whole time. no conversion needed, she's already fluent 😌


πŸ“ Parameters πŸ“

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

pick your triangle, bestie β€” up or down, there is no in-between πŸ’€

  • WAY
WAY is CHARACTER*1 = 'C': Convert = 'R': Revert

one letter decides the whole direction of the journey. main character energy fr fr πŸ”₯

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

just don't be negative, that's the whole vibe check ✨

  • A
A is COMPLEX array, dimension (LDA,N) 1) If WAY ='C': On entry, contains factorization details in format used in CSYTRF_ROOK: a) all elements of the symmetric block diagonal matrix D on the diagonal of A and on superdiagonal (or subdiagonal) of A, and b) If UPLO = 'U': multipliers used to obtain factor U in the superdiagonal part of A. If UPLO = 'L': multipliers used to obtain factor L in the superdiagonal part of A. On exit, contains factorization details in format used in CSYTRF_RK or CSYTRF_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 are stored on exit 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. 2) If WAY = 'R': On entry, contains factorization details in format used in CSYTRF_RK or CSYTRF_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 are stored on exit 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, contains factorization details in format used in CSYTRF_ROOK: a) all elements of the symmetric block diagonal matrix D on the diagonal of A and on superdiagonal (or subdiagonal) of A, and b) If UPLO = 'U': multipliers used to obtain factor U in the superdiagonal part of A. If UPLO = 'L': multipliers used to obtain factor L in the superdiagonal part of A.

literally the switch-up queen of the whole routine β€” she goes in one format and comes out another, and then back again if you ask nicely πŸ’… note that the subdiagonal/superdiagonal gymnastics completely depend on whether UPLO is 'U' or 'L', so read that carefully, no skipping 🫢

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

the classic. respect the leading dimension or perish πŸ™ˆ

  • E
E is COMPLEX array, dimension (N) 1) If WAY ='C': On entry, just a workspace. On exit, 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) is set to 0; If UPLO = 'L': E(i) = D(i+1,i), i=1:N-1, E(N) is set to 0. 2) If WAY = 'R': 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. On exit, is not changed

so in the 'C' direction she starts as an empty little workspace and comes out absolutely booked and busy with the D off-diagonals. in the 'R' direction she already knows everything and leaves untouched. queen behavior πŸ‘‘

  • IPIV
IPIV is INTEGER array, dimension (N) On entry, details of the interchanges and the block structure of D as determined: 1) by CSYTRF_ROOK, if WAY ='C'; 2) by CSYTRF_RK (or CSYTRF_BK), if WAY ='R'. The IPIV format is the same for all these routines. On exit, is not changed.

untouched, unbothered, unbothered. the format matches across all of them so she literally doesn't have to lift a finger πŸ’–

  • INFO
INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value

zero means slay, negative means one of your arguments was messy 😭


🌈 Author 🌈

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

the whole squad contributed, we love a collab 🫢


🧚 Contributors: 🧚

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

shoutout Igor, November 2017, CS Division, UC Berkeley β€” a legend, fr fr ⭐


πŸ’œ Definition at line 199 of file csyconvf_rook.f.

line 199, bestie. go look πŸ‘€


πŸŽ€ Author πŸŽ€

Generated automatically by Doxygen for LAPACK from the source code.

(not a human, a robot, and honestly she ate πŸ€–βœ¨)


and that's the whole page! this is LAPACK, Version 3.12.0, straight out of /home/abui...nvf_rook.f(3) β€” mwah, go convert something πŸ’…πŸŒΈπŸ’–

πŸ“¦ where this page comes from