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 equations A * X = B for OTHER matrices
  • dppsv β€” subroutine dppsv (uplo, n, nrhs, ap, b, ldb, info) DPPSV computes the solution to system of linear equations A * X = B for OTHER matrices
  • sppsv β€” subroutine sppsv (uplo, n, nrhs, ap, b, ldb, info) SPPSV computes the solution to system of linear equations A * X = B for OTHER matrices
  • zppsv β€” subroutine zppsv (uplo, n, nrhs, ap, b, ldb, info) ZPPSV computes the solution to system of linear equations A * X = B for 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, if INFO = 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, if INFO = 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, if INFO = 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 β€” UPLO is CHARACTER*1.
    • = 'U': Upper triangle of A is stored;
    • = 'L': Lower triangle of A is stored.
  • N β€” N is INTEGER. The number of linear equations, i.e., the order of the matrix A. N >= 0.
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • AP β€” AP is COMPLEX*16 array, dimension (N*(N+1)/2). On entry, 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, 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*16 array, 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.
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • INFO β€” INFO is INTEGER.
    • = 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 ✨ (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