ppsv(3)
ppsv(3) β straight from the Library Functions Manual β is your bestie for factor and solve, and we're about to make it make sense πβ¨
π NAME π
ppsv β ppsv: factor and solve
β¨ SYNOPSIS β¨
Okay so here are the functions, all lined up and looking iconic:
cppsvβsubroutine cppsv (uplo, n, nrhs, ap, b, ldb, info)CPPSV computes the solution to system of linear equationsA * X = Bfor OTHER matricesdppsvβsubroutine dppsv (uplo, n, nrhs, ap, b, ldb, info)DPPSV computes the solution to system of linear equationsA * X = Bfor OTHER matricessppsvβsubroutine sppsv (uplo, n, nrhs, ap, b, ldb, info)SPPSV computes the solution to system of linear equationsA * X = Bfor OTHER matriceszppsvβsubroutine zppsv (uplo, n, nrhs, ap, b, ldb, info)ZPPSV computes the solution to system of linear equationsA * X = Bfor OTHER matrices
π Detailed Description π
This is where the function docs live, and they are lowkey the whole point. π
π οΈ Function Documentation π οΈ
π subroutine cppsv π
subroutine cppsv (character uplo, integer n, integer nrhs, complex, dimension( * ) ap, complex, dimension( ldb, * ) b, integer ldb, integer info)
CPPSV computes the solution to system of linear equations A * X = B for OTHER matrices
Purpose:
CPPSV computes the solution to a complex system of linear equations
A * X = B,
where A is an N-by-N Hermitian positive definite matrix stored in packed format and X and B are N-by-NRHS matrices.
The Cholesky decomposition is used to factor A as
A = U**H * U, if UPLO = 'U', or
A = L * L**H, if UPLO = 'L',
where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
Parameters
UPLOβUPLO is CHARACTER*1; here's the storage tea:= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
NβN is INTEGER; it's the number of linear equations, i.e., the order of the matrix A.N >= 0.NRHSβNRHS is INTEGER; it's the number of right hand sides, i.e., the number of columns of the matrix B.NRHS >= 0.APβAP is COMPLEX array, dimension (N*(N+1)/2). On entry, it's the upper or lower triangle of the Hermitian matrix A, packed columnwise in a linear array. The j-th column of A is stored in the array AP as follows:if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
See below for further details.
On exit, if INFO = 0, it's the factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H, in the same storage format as A.
BβB is COMPLEX array, dimension (LDB,NRHS). On entry, it's the N-by-NRHS right hand side matrix B. On exit, ifINFO = 0, it's the N-by-NRHS solution matrix X.LDBβLDB is INTEGER; it's the leading dimension of the array B.LDB >= max(1,N).INFOβINFO is INTEGER; status check, bestie:= 0: successful exit< 0: if INFO = -i, the i-th argument had an illegal value> 0: if INFO = i, the leading principal minor of order i of A is not positive, so the factorization could not be completed, and the solution has not been computed.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details:
The packed storage scheme is illustrated by the following example when N = 4, UPLO = 'U':
Two-dimensional storage of the Hermitian matrix A:
a11 a12 a13 a14
a22 a23 a24
a33 a34 (aij = conjg(aji))
a44
Packed storage of the upper triangle of A:
AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ]
Definition at line 143 of file cppsv.f.
π subroutine dppsv π
subroutine dppsv (character uplo, integer n, integer nrhs, double precision, dimension( * ) ap, double precision, dimension( ldb, * ) b, integer ldb, integer info)
DPPSV computes the solution to system of linear equations A * X = B for OTHER matrices
Purpose:
DPPSV computes the solution to a real system of linear equations
A * X = B,
where A is an N-by-N symmetric positive definite matrix stored in packed format and X and B are N-by-NRHS matrices.
The Cholesky decomposition is used to factor A as
A = U**T* U, if UPLO = 'U', or
A = L * L**T, if UPLO = 'L',
where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
Parameters
UPLOβUPLO is CHARACTER*1; here's the storage tea:= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
NβN is INTEGER; it's the number of linear equations, i.e., the order of the matrix A.N >= 0.NRHSβNRHS is INTEGER; it's the number of right hand sides, i.e., the number of columns of the matrix B.NRHS >= 0.APβAP is DOUBLE PRECISION array, dimension (N*(N+1)/2). On entry, it's the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. The j-th column of A is stored in the array AP as follows:if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
See below for further details.
On exit, if INFO = 0, it's the factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T, in the same storage format as A.
BβB is DOUBLE PRECISION array, dimension (LDB,NRHS). On entry, it's the N-by-NRHS right hand side matrix B. On exit, ifINFO = 0, it's the N-by-NRHS solution matrix X.LDBβLDB is INTEGER; it's the leading dimension of the array B.LDB >= max(1,N).INFOβINFO is INTEGER; status check, bestie:= 0: successful exit< 0: if INFO = -i, the i-th argument had an illegal value> 0: if INFO = i, the leading principal minor of order i of A is not positive, so the factorization could not be completed, and the solution has not been computed.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details:
The packed storage scheme is illustrated by the following example when N = 4, UPLO = 'U':
Two-dimensional storage of the symmetric matrix A:
a11 a12 a13 a14
a22 a23 a24
a33 a34 (aij = conjg(aji))
a44
Packed storage of the upper triangle of A:
AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ]
Definition at line 143 of file dppsv.f.
π subroutine sppsv π
subroutine sppsv (character uplo, integer n, integer nrhs, real, dimension( * ) ap, real, dimension( ldb, * ) b, integer ldb, integer info)
SPPSV computes the solution to system of linear equations A * X = B for OTHER matrices
Purpose:
SPPSV computes the solution to a real system of linear equations
A * X = B,
where A is an N-by-N symmetric positive definite matrix stored in packed format and X and B are N-by-NRHS matrices.
The Cholesky decomposition is used to factor A as
A = U**T* U, if UPLO = 'U', or
A = L * L**T, if UPLO = 'L',
where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
Parameters
UPLOβUPLO is CHARACTER*1; here's the storage tea:= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
NβN is INTEGER; it's the number of linear equations, i.e., the order of the matrix A.N >= 0.NRHSβNRHS is INTEGER; it's the number of right hand sides, i.e., the number of columns of the matrix B.NRHS >= 0.APβAP is REAL array, dimension (N*(N+1)/2). On entry, it's the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. The j-th column of A is stored in the array AP as follows:if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
See below for further details.
On exit, if INFO = 0, it's the factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T, in the same storage format as A.
BβB is REAL array, dimension (LDB,NRHS). On entry, it's the N-by-NRHS right hand side matrix B. On exit, ifINFO = 0, it's the N-by-NRHS solution matrix X.LDBβLDB is INTEGER; it's the leading dimension of the array B.LDB >= max(1,N).INFOβINFO is INTEGER; status check, bestie:= 0: successful exit< 0: if INFO = -i, the i-th argument had an illegal value> 0: if INFO = i, the leading principal minor of order i of A is not positive, so the factorization could not be completed, and the solution has not been computed.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
β¨ Further Details β¨ (finishing sppsv)
Okay so the packed storage scheme is literally illustrated by this example when N = 4 and UPLO = 'U':
Two-dimensional storage of the symmetric matrix A:
a11 a12 a13 a14
a22 a23 a24
a33 a34 (aij = conjg(aji))
a44
Packed storage of the upper triangle of A:
AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ]
And the official definition for this one lives at line 143 of file sppsv.f. Slay. π
π¦ subroutine zppsv π¦
subroutine zppsv (character uplo, integer n, integer nrhs, complex*16, dimension( * ) ap, complex*16, dimension( ldb, * ) b, integer ldb, integer info)
ZPPSV computes the solution to system of linear equations A * X = B for OTHER matrices
Purpose:
So ZPPSV computes the solution to a complex system of linear equations
A * X = B,
where A is an N-by-N Hermitian positive definite matrix stored in packed format, and X and B are N-by-NRHS matrices.
The Cholesky decomposition is used to factor A as
A = U**H * U, if UPLO = 'U', or
A = L * L**H, if UPLO = 'L',
where U is an upper triangular matrix and L is a lower triangular matrix. Then the factored form of A is used to solve the system of equations A * X = B. Very demure, very Cholesky. π
π Parameters
UPLOβUPLOisCHARACTER*1.= 'U': Upper triangle ofAis stored;= 'L': Lower triangle ofAis stored.
NβNisINTEGER. The number of linear equations, i.e., the order of the matrixA.N >= 0.NRHSβNRHSisINTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.APβAPisCOMPLEX*16array, dimension(N*(N+1)/2). On entry, the upper or lower triangle of the Hermitian matrixA, packed columnwise in a linear array. Thej-th column ofAis stored in the arrayAPas follows:- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2n-j)/2) = A(i,j)forj<=i<=n.
- if
See below for further details.
On exit, if INFO = 0, the factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H, in the same storage format as A.
BβBisCOMPLEX*16array, dimension(LDB,NRHS). On entry, theN-by-NRHSright hand side matrixB. On exit, ifINFO = 0, theN-by-NRHSsolution matrixX.LDBβLDBisINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).INFOβINFOisINTEGER.= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value> 0: ifINFO = i, the leading principal minor of orderiofAis not positive, so the factorization could not be completed, and the solution has not been computed.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
β¨ Further Details β¨ (zppsv edition)
The packed storage scheme is illustrated by the following example when N = 4 and UPLO = 'U':
Two-dimensional storage of the Hermitian matrix A:
a11 a12 a13 a14
a22 a23 a24
a33 a34 (aij = conjg(aji))
a44
Packed storage of the upper triangle of A:
AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ]
Definition at line 143 of file zppsv.f. Iconic behavior, no notes. π«Ά
π§ Author (the Doxygen one)
Generated automatically by Doxygen for LAPACK from the source code.
Okay thatβs the whole ppsv(3) saga, bestie π shoutout to LAPACK Version 3.12.0 and the ppsv(3) footer tag for carrying us through β you made it to the end, periodt. ππ
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms