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

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

πŸ’… NAME

Bestie, welcome to the Library Functions Manual page for /home/abui...tf2_rook.f(3). The name is, and I cannot stress this enough, literally this path:

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

This is the <lavender>DSYTF2_ROOK</lavender> show. Buckle up πŸŽ€.


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine DSYTF2_ROOK (uplo, n, a, lda, ipiv, info)
    DSYTF2_ROOK computes the factorization of a real symmetric
    indefinite matrix using the bounded Bunch-Kaufman
    (rook")diagonalpivotingmethod(unblockedalgorithm).

Yes, that (rook")diagonalpivotingmethod(unblockedalgorithm). bit is exactly how it shows up in the synopsis β€” no cap, I'm not fixing it 😭. The cleaner version below says it computes the factorization of a real symmetric indefinite matrix using the bounded Bunch-Kaufman "rook" diagonal pivoting method (unblocked algorithm).


🧚 Function/Subroutine Documentation

   subroutine DSYTF2_ROOK (character uplo, integer n, double precision,
       dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv,
       integer info)

DSYTF2_ROOK computes the factorization of a real symmetric indefinite matrix using the bounded Bunch-Kaufman "rook" diagonal pivoting method (unblocked algorithm). Iconic behavior honestly.

🌸 Purpose

!>
!> DSYTF2_ROOK computes the factorization of a real symmetric matrix A
!> using the bounded Bunch-Kaufman () diagonal pivoting method:
!>
!>    A = U*D*U**T  or  A = L*D*L**T
!>
!> where U (or L) is a product of permutation and unit upper (lower)
!> triangular matrices, U**T is the transpose of U, and D is symmetric and
!> block diagonal with 1-by-1 and 2-by-2 diagonal blocks.
!>
!> This is the unblocked version of the algorithm, calling Level 2 BLAS.
!>

So yeah, it's giving factorization into A = U*D*U**T or A = L*D*L**T, with D being symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks. Unblocked algorithm, Level 2 BLAS, main character energy πŸ’….

πŸŽ€ Parameters

  • UPLO β€” UPLO is CHARACTER*1. It says whether the upper or lower triangular part of the symmetric matrix A is stored:
    • = 'U': Upper triangular
    • = 'L': Lower triangular
  • N β€” N is INTEGER. The order of the matrix A. N >= 0.
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N).
    • On entry, it's the symmetric matrix A. If UPLO = 'U', the leading n-by-n upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = 'L', the leading n-by-n lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
    • On exit, the block diagonal matrix D and the multipliers used to obtain the factor U or L (see below for further details).
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is INTEGER array, dimension (N). Details of the interchanges and the block structure of D.
    • If UPLO = 'U':
      • If IPIV(k) > 0, then rows and columns k and IPIV(k) were interchanged and D(k,k) is a 1-by-1 diagonal block.
      • If IPIV(k) < 0 and IPIV(k-1) < 0, then rows and columns k and -IPIV(k) were interchanged and rows and columns k-1 and -IPIV(k-1) were inerchaged (their spelling, not mine 😭), D(k-1:k,k-1:k) is a 2-by-2 diagonal block.
    • If UPLO = 'L':
      • If IPIV(k) > 0, then rows and columns k and IPIV(k) were interchanged and D(k,k) is a 1-by-1 diagonal block.
      • If IPIV(k) < 0 and IPIV(k+1) < 0, then rows and columns k and -IPIV(k) were interchanged and rows and columns k+1 and -IPIV(k+1) were inerchaged, D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit
    • < 0: if INFO = -k, the k-th argument had an illegal value
    • > 0: if INFO = k, D(k,k) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, and division by zero will occur if it is used to solve a system of equations.

πŸ‘‘ Author

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

πŸ¦‹ Further Details:

This is the exact block, bestie β€” matrix diagrams and all:

!>
!>  If UPLO = 'U', then A = U*D*U**T, where
!>     U = P(n)*U(n)* ... *P(k)U(k)* ...,
!>  i.e., U is a product of terms P(k)*U(k), where k decreases from n to
!>  1 in steps of 1 or 2, and D is a block diagonal matrix with 1-by-1
!>  and 2-by-2 diagonal blocks D(k).  P(k) is a permutation matrix as
!>  defined by IPIV(k), and U(k) is a unit upper triangular matrix, such
!>  that if the diagonal block D(k) is of order s (s = 1 or 2), then
!>
!>             (   I    v    0   )   k-s
!>     U(k) =  (   0    I    0   )   s
!>             (   0    0    I   )   n-k
!>                k-s   s   n-k
!>
!>  If s = 1, D(k) overwrites A(k,k), and v overwrites A(1:k-1,k).
!>  If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1), A(k-1,k),
!>  and A(k,k), and v overwrites A(1:k-2,k-1:k).
!>
!>  If UPLO = 'L', then A = L*D*L**T, where
!>     L = P(1)*L(1)* ... *P(k)*L(k)* ...,
!>  i.e., L is a product of terms P(k)*L(k), where k increases from 1 to
!>  n in steps of 1 or 2, and D is a block diagonal matrix with 1-by-1
!>  and 2-by-2 diagonal blocks D(k).  P(k) is a permutation matrix as
!>  defined by IPIV(k), and L(k) is a unit lower triangular matrix, such
!>  that if the diagonal block D(k) is of order s (s = 1 or 2), then
!>
!>             (   I    0     0   )  k-1
!>     L(k) =  (   0    I     0   )  s
!>             (   0    v     I   )  n-k-s+1
!>                k-1   s  n-k-s+1
!>
!>  If s = 1, D(k) overwrites A(k,k), and v overwrites A(k+1:n,k).
!>  If s = 2, the lower triangle of D(k) overwrites A(k,k), A(k+1,k),
!>  and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
!>

🌈 Contributors:

!>
!>  November 2013,     Igor Kozachenko,
!>                  Computer Science Division,
!>                  University of California, Berkeley
!>
!>  September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas,
!>                  School of Mathematics,
!>                  University of Manchester
!>
!>  01-01-96 - Based on modifications by
!>    J. Lewis, Boeing Computer Services Company
!>    A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville abd , USA
!>

Definition at line 193 of file dsytf2_rook.f.


⭐ Author

Generated automatically by Doxygen for LAPACK from the source code.

Okay that's the whole page, bestie πŸ’–. Footer tea: source is LAPACK, version is Version 3.12.0, and the page path is /home/abui...tf2_rook.f(3). The footer doesn't give a date, so I'm not making one up πŸ™ˆ. Slay ✨

πŸ“¦ where this page comes from