DSYSV_RK(3)
π DSYSV_RK(3) β like, the LAPACK girlies' guide π
okay so bestie, you're looking at a page from the LAPACK manual (yes, that LAPACK, the linear algebra icon herself π), and today's main character is DSYSV_RK. Buckle in π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dsysv_rk.f
like, that's literally the whole name section β it's just the source file path, she's lowkey mysterious like that π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine DSYSV_RK (uplo, n, nrhs, a, lda, e, ipiv, b, ldb, work,
lwork, info)
DSYSV_RK computes the solution to system of linear equations A * X = B for SY matrices β¨
π Function/Subroutine Documentation π
subroutine DSYSV_RK (character uplo, integer n, integer nrhs, double
precision, dimension( lda, * ) a, integer lda, double precision,
dimension( * ) e, integer, dimension( * ) ipiv, double precision,
dimension( ldb, * ) b, integer ldb, double precision, dimension( * )
work, integer lwork, integer info)
DSYSV_RK computes the solution to system of linear equations A * X = B for SY matrices. no cap, that's the whole job π«Ά
π Purpose π
DSYSV_RK computes the solution to a real system of linear equationsA * X = B, where A is an N-by-N symmetric matrix and X and B are N-by-NRHS matrices. The bounded Bunch-Kaufman (rook) diagonal pivoting method is used to factor A asA = P*U*D*(U**T)*(P**T), ifUPLO = 'U', orA = P*L*D*(L**T)*(P**T), ifUPLO = 'L', where U (or L) is unit upper (or lower) triangular matrix,U**T(orL**T) is the transpose of U (or L), P is a permutation matrix,P**Tis the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.DSYTRF_RKis called to compute the factorization of a real symmetric matrix. The factored form of A is then used to solve the system of equationsA * X = Bby calling BLAS3 routineDSYTRS_3.
ngl, the rook pivoting method is giving main character energy π₯
πΈ Parameters πΈ
UPLOβUPLOisCHARACTER*1, and she specifies whether the upper or lower triangular part of the symmetric matrix A is stored:= 'U': upper triangle of A is stored π= 'L': lower triangle of A is stored π
NβNisINTEGER. the number of linear equations, i.e., the order of the matrix A.N >= 0βNRHSβNRHSisINTEGER. the number of right hand sides, i.e., the number of columns of the matrix B.NRHS >= 0βAβAisDOUBLE PRECISIONarray, dimension(LDA,N).- On entry, 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.
- If
- On exit, if
INFO = 0, diagonal of the block diagonal matrix D and factors U or L as computed byDSYTRF_RK:- 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 arrayE), and - b) If
UPLO = 'U': factor U in the superdiagonal part of A. IfUPLO = 'L': factor L in the subdiagonal part of A.
- a) ONLY diagonal elements of the symmetric block diagonal matrix D on the diagonal of A, i.e.
- For more info see the description of
DSYTRF_RKroutine.
- On entry, the symmetric matrix A.
LDAβLDAisINTEGER. the leading dimension of the array A.LDA >= max(1,N)π¦EβEisDOUBLE PRECISIONarray, dimension(N).- On exit, contains the output computed by the factorization routine
DSYTRF_RK, i.e. 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.
- If
- NOTE: For 1-by-1 diagonal block
D(k), where1 <= k <= N, the elementE(k)is set to 0 in bothUPLO = 'U'orUPLO = 'L'cases. - For more info see the description of
DSYTRF_RKroutine.
- On exit, contains the output computed by the factorization routine
IPIVβIPIVisINTEGERarray, dimension(N). details of the interchanges and the block structure of D, as determined byDSYTRF_RK. for more info see the description ofDSYTRF_RKroutine π«BβBisDOUBLE PRECISIONarray, dimension(LDB,NRHS).- On entry, the N-by-NRHS right hand side matrix B.
- On exit, if
INFO = 0, the N-by-NRHS solution matrix X. slay β¨
LDBβLDBisINTEGER. the leading dimension of the array B.LDB >= max(1,N)π¦WORKβWORKisDOUBLE PRECISIONarray, dimension( MAX(1,LWORK) ). work array used in the factorization stage. On exit, ifINFO = 0,WORK(1)returns the optimalLWORKπLWORKβLWORKisINTEGER. the length ofWORK.LWORK >= 1. For best performance of factorization stageLWORK >= max(1,N*NB), where NB is the optimal blocksize forDSYTRF_RK.- If
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray for factorization stage, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLAπ
- If
INFOβINFOisINTEGER= 0: successful exit π< 0: IfINFO = -k, the k-th argument had an illegal value π> 0: IfINFO = k, the matrix A is singular, because:- If
UPLO = 'U': column k in the upper triangular part of A contains all zeros. - If
UPLO = 'L': column k in the lower triangular part of A contains all zeros. - Therefore
D(k,k)is exactly zero, and superdiagonal elements of column k of U (or subdiagonal elements of column k of L ) are all zeros. 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. - NOTE:
INFOonly stores the first occurrence of a singularity, any subsequent occurrence of singularity is not stored inINFOeven though the factorization always completes.
- If
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π§ Contributors π§
December 2016, Igor Kozachenko, Computer Science Division, University of California, Berkeley September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas, School of Mathematics, University of Manchester
Definition at line 226 of file dsysv_rk.f π
β Author β
Generated automatically by Doxygen for LAPACK from the source code. (she's a bot but she ate π )
okay that's the whole page bestie, you're SO ready for your linear solve now π«Άβ¨
this iconic lil' rendering is from LAPACK, Version 3.12.0, served fresh from /home/abui.../dsysv_rk.f(3) β go off, queen ππ
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms