pftrs(3)

πŸ’… pftrs(3) β€” triangular solve using factor πŸ’…

pftrs(3) Β· Library Functions Manual Β· pftrs(3)

✨ NAME ✨

pftrs β€” pftrs: triangular solve using factor. That's the whole name section, bestie, short and iconic. πŸŽ€

πŸ¦‹ SYNOPSIS πŸ¦‹

πŸ’– Functions πŸ’–

  • subroutine cpftrs (transr, uplo, n, nrhs, a, b, ldb, info) β€” CPFTRS
  • subroutine dpftrs (transr, uplo, n, nrhs, a, b, ldb, info) β€” DPFTRS
  • subroutine spftrs (transr, uplo, n, nrhs, a, b, ldb, info) β€” SPFTRS
  • subroutine zpftrs (transr, uplo, n, nrhs, a, b, ldb, info) β€” ZPFTRS

🌸 Detailed Description 🌸

Okay so this page is basically all function documentation. Buckle up, we're going through the pftrs family one subroutine at a time. 🫢

πŸ¦‹ Function Documentation πŸ¦‹

πŸ’– subroutine cpftrs πŸ’–

subroutine cpftrs (character transr, character uplo, integer n, integer
nrhs, complex, dimension( 0: * ) a, complex, dimension( ldb, * ) b,
integer ldb, integer info)

CPFTRS

πŸŽ€ Purpose πŸŽ€

Not me solving your linear system AND serving looks. CPFTRS solves a system of linear equations A*X = B with a Hermitian positive definite matrix A using the Cholesky factorization A = U**H*U or A = L*L**H computed by CPFTRF. Periodt. πŸ’…

πŸŽ€ Parameters πŸŽ€

  • TRANSR β€” TRANSR is CHARACTER*1. = 'N': The Normal TRANSR of RFP A is stored; = 'C': The Conjugate-transpose TRANSR of RFP A is stored.
  • UPLO β€” UPLO is CHARACTER*1. = 'U': Upper triangle of RFP A is stored; = 'L': Lower triangle of RFP A is stored.
  • N β€” N is INTEGER. 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.
  • A β€” A is COMPLEX array, dimension ( N*(N+1)/2 );. The triangular factor U or L from the Cholesky factorization of RFP A = U**H*U or RFP A = L*L**H, as computed by CPFTRF. See note below for more details about RFP A.
  • B β€” B is COMPLEX array, dimension (LDB,NRHS). On entry, the right hand side matrix B. On exit, the 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.

🌟 Author 🌟

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

πŸ”₯ Further Details: πŸ”₯

First up: Standard Packed Format when N is even. We give an example where N = 6. πŸ“

AP is Upper             AP is Lower

00 01 02 03 04 05       00
  11 12 13 14 15       10 11
     22 23 24 25       20 21 22
        33 34 35       30 31 32 33
           44 45       40 41 42 43 44
              55       50 51 52 53 54 55

Let TRANSR = 'N'. RFP holds AP as follows:

  • For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last three columns of AP upper. The lower triangle A(4:6,0:2) consists of conjugate-transpose of the first three columns of AP upper.
  • For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first three columns of AP lower. The upper triangle A(0:2,0:2) consists of conjugate-transpose of the last three columns of AP lower.

To denote conjugate we place -- above the element. This covers the case N even and TRANSR = 'N'.

        RFP A                   RFP A

                           -- -- --
03 04 05                33 43 53
                              -- --
13 14 15                00 44 54
                                 --
23 24 25                10 11 55

33 34 35                20 21 22
--
00 44 45                30 31 32
-- --
01 11 55                40 41 42
-- -- --
02 12 22                50 51 52

Now let TRANSR = 'C'. RFP A in both UPLO cases is just the conjugate-transpose of RFP A above. One therefore gets:

          RFP A                   RFP A

    -- -- -- --                -- -- -- -- -- --
    03 13 23 33 00 01 02    33 00 10 20 30 40 50
    -- -- -- -- --                -- -- -- -- --
    04 14 24 34 44 11 12    43 44 11 21 31 41 51
    -- -- -- -- -- --                -- -- -- --
    05 15 25 35 45 55 22    53 54 55 22 32 42 52

We next consider Standard Packed Format when N is odd. We give an example where N = 5.

AP is Upper                 AP is Lower

00 01 02 03 04              00
  11 12 13 14              10 11
     22 23 24              20 21 22
        33 34              30 31 32 33
           44              40 41 42 43 44

Let TRANSR = 'N'. RFP holds AP as follows:

  • For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last three columns of AP upper. The lower triangle A(3:4,0:1) consists of conjugate-transpose of the first two columns of AP upper.
  • For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first three columns of AP lower. The upper triangle A(0:1,1:2) consists of conjugate-transpose of the last two columns of AP lower.

To denote conjugate we place -- above the element. This covers the case N odd and TRANSR = 'N'.

        RFP A                   RFP A

                                  -- --
02 03 04                00 33 43
                                     --
12 13 14                10 11 44

22 23 24                20 21 22
--
00 33 34                30 31 32
-- --
01 11 44                40 41 42

Now let TRANSR = 'C'. RFP A in both UPLO cases is just the conjugate-transpose of RFP A above. One therefore gets:

          RFP A                   RFP A

    -- -- --                   -- -- -- -- -- --
    02 12 22 00 01             00 10 20 30 40 50
    -- -- -- --                   -- -- -- -- --
    03 13 23 33 11             33 11 21 31 41 51
    -- -- -- -- --                   -- -- -- --
    04 14 24 34 44             43 44 22 32 42 52

Definition at line 219 of file cpftrs.f.

πŸ’œ subroutine dpftrs πŸ’œ

subroutine dpftrs (character transr, character uplo, integer n, integer
nrhs, double precision, dimension( 0: * ) a, double precision,
dimension( ldb, * ) b, integer ldb, integer info)

DPFTRS

πŸŽ€ Purpose πŸŽ€

DPFTRS solves a system of linear equations A*X = B with a symmetric positive definite matrix A using the Cholesky factorization A = U**T*U or A = L*L**T computed by DPFTRF. Same energy, double precision flavor. ✨

πŸŽ€ Parameters πŸŽ€

  • TRANSR β€” TRANSR is CHARACTER*1. = 'N': The Normal TRANSR of RFP A is stored; = 'T': The Transpose TRANSR of RFP A is stored.
  • UPLO β€” UPLO is CHARACTER*1. = 'U': Upper triangle of RFP A is stored; = 'L': Lower triangle of RFP A is stored.
  • N β€” N is INTEGER. 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.
  • A β€” A is DOUBLE PRECISION array, dimension ( N*(N+1)/2 ).. The triangular factor U or L from the Cholesky factorization of RFP A = U**T*U or RFP A = L*L**T, as computed by DPFTRF. See note below for more details about RFP A.
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). On entry, the right hand side matrix B. On exit, the 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.

🌟 Author 🌟

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

πŸ”₯ Further Details: πŸ”₯

Okay bestie, here's the RFP visual β€” do not lose these indices, they are the whole plot fr fr.

           !>
           !>  We first consider Rectangular Full Packed (RFP) Format when N is
           !>  even. We give an example where N = 6.
           !>
           !>      AP is Upper             AP is Lower
           !>
           !>   00 01 02 03 04 05       00
           !>      11 12 13 14 15       10 11
           !>         22 23 24 25       20 21 22
           !>            33 34 35       30 31 32 33
           !>               44 45       40 41 42 43 44
           !>                  55       50 51 52 53 54 55
           !>
           !>
           !>  Let TRANSR = 'N'. RFP holds AP as follows:
           !>  For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last
           !>  three columns of AP upper. The lower triangle A(4:6,0:2) consists of
           !>  the transpose of the first three columns of AP upper.
           !>  For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first
           !>  three columns of AP lower. The upper triangle A(0:2,0:2) consists of
           !>  the transpose of the last three columns of AP lower.
           !>  This covers the case N even and TRANSR = 'N'.
           !>
           !>         RFP A                   RFP A
           !>
           !>        03 04 05                33 43 53
           !>        13 14 15                00 44 54
           !>        23 24 25                10 11 55
           !>        33 34 35                20 21 22
           !>        00 44 45                30 31 32
           !>        01 11 55                40 41 42
           !>        02 12 22                50 51 52
           !>
           !>  Now let TRANSR = 'T'. RFP A in both UPLO cases is just the
           !>  transpose of RFP A above. One therefore gets:
           !>
           !>
           !>           RFP A                   RFP A
           !>
           !>     03 13 23 33 00 01 02    33 00 10 20 30 40 50
           !>     04 14 24 34 44 11 12    43 44 11 21 31 41 51
           !>     05 15 25 35 45 55 22    53 54 55 22 32 42 52
           !>
           !>
           !>  We then consider Rectangular Full Packed (RFP) Format when N is
           !>  odd. We give an example where N = 5.
           !>
           !>     AP is Upper                 AP is Lower
           !>
           !>   00 01 02 03 04              00
           !>      11 12 13 14              10 11
           !>         22 23 24              20 21 22
           !>            33 34              30 31 32 33
           !>               44              40 41 42 43 44
           !>
           !>
           !>  Let TRANSR = 'N'. RFP holds AP as follows:
           !>  For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last
           !>  three columns of AP upper. The lower triangle A(3:4,0:1) consists of
           !>  the transpose of the first two columns of AP upper.
           !>  For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first
           !>  three columns of AP lower. The upper triangle A(0:1,1:2) consists of
           !>  the transpose of the last two columns of AP lower.
           !>  This covers the case N odd and TRANSR = 'N'.
           !>
           !>         RFP A                   RFP A
           !>
           !>        02 03 04                00 33 43
           !>        12 13 14                10 11 44
           !>        22 23 24                20 21 22
           !>        00 33 34                30 31 32
           !>        01 11 44                40 41 42
           !>
           !>  Now let TRANSR = 'T'. RFP A in both UPLO cases is just the
           !>  transpose of RFP A above. One therefore gets:
           !>
           !>           RFP A                   RFP A
           !>
           !>     02 12 22 00 01             00 10 20 30 40 50
           !>     03 13 23 33 11             33 11 21 31 41 51
           !>     04 14 24 34 44             43 44 22 32 42 52
           !>

Definition at line 198 of file dpftrs.f. πŸ’…


πŸ’– subroutine spftrs

subroutine spftrs (character transr, character uplo, integer n, integer
    nrhs, real, dimension( 0: * ) a, real, dimension( ldb, * ) b, integer
    ldb, integer info)

SPFTRS ✨

Purpose 🎯

Okay so SPFTRS solves a system of linear equations A*X = B where A is a symmetric positive definite matrix, using the Cholesky factorization A = U**T*U or A = L*L**T that was computed by SPFTRF. That's the whole vibe. 🫢

Parameters 🫢

  • TRANSR β€” TRANSR is CHARACTER*1
    • = 'N': The Normal TRANSR of RFP A is stored;
    • = 'T': The Transpose TRANSR of RFP A is stored.
  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangle of RFP A is stored;
    • = 'L': Lower triangle of RFP A is stored.
  • N β€” N is INTEGER
    • 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.
  • A β€” A is REAL array, dimension ( N*(N+1)/2 )
    • The triangular factor U or L from the Cholesky factorization of RFP A = U**H*U or RFP A = L*L**T, as computed by SPFTRF. See note below for more details about RFP A. πŸ’œ
  • B β€” B is REAL array, dimension (LDB,NRHS)
    • On entry, the right hand side matrix B.
    • On exit, the solution matrix X. slay
  • 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

Author πŸ‘‘

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

Further Details πŸ”₯

           !>
           !>  We first consider Rectangular Full Packed (RFP) Format when N is
           !>  even. We give an example where N = 6.
           !>
           !>      AP is Upper             AP is Lower
           !>
           !>   00 01 02 03 04 05       00
           !>      11 12 13 14 15       10 11
           !>         22 23 24 25       20 21 22
           !>            33 34 35       30 31 32 33
           !>               44 45       40 41 42 43 44
           !>                  55       50 51 52 53 54 55
           !>
           !>
           !>  Let TRANSR = 'N'. RFP holds AP as follows:
           !>  For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last
           !>  three columns of AP upper. The lower triangle A(4:6,0:2) consists of
           !>  the transpose of the first three columns of AP upper.
           !>  For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first
           !>  three columns of AP lower. The upper triangle A(0:2,0:2) consists of
           !>  the transpose of the last three columns of AP lower.
           !>  This covers the case N even and TRANSR = 'N'.
           !>
           !>         RFP A                   RFP A
           !>
           !>        03 04 05                33 43 53
           !>        13 14 15                00 44 54
           !>        23 24 25                10 11 55
           !>        33 34 35                20 21 22
           !>        00 44 45                30 31 32
           !>        01 11 55                40 41 42
           !>        02 12 22                50 51 52
           !>
           !>  Now let TRANSR = 'T'. RFP A in both UPLO cases is just the
           !>  transpose of RFP A above. One therefore gets:
           !>
           !>
           !>           RFP A                   RFP A
           !>
           !>     03 13 23 33 00 01 02    33 00 10 20 30 40 50
           !>     04 14 24 34 44 11 12    43 44 11 21 31 41 51
           !>     05 15 25 35 45 55 22    53 54 55 22 32 42 52
           !>
           !>
           !>  We then consider Rectangular Full Packed (RFP) Format when N is
           !>  odd. We give an example where N = 5.
           !>
           !>     AP is Upper                 AP is Lower
           !>
           !>   00 01 02 03 04              00
           !>      11 12 13 14              10 11
           !>         22 23 24              20 21 22
           !>            33 34              30 31 32 33
           !>               44              40 41 42 43 44
           !>
           !>
           !>  Let TRANSR = 'N'. RFP holds AP as follows:
           !>  For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last
           !>  three columns of AP upper. The lower triangle A(3:4,0:1) consists of
           !>  the transpose of the first two columns of AP upper.
           !>  For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first
           !>  three columns of AP lower. The upper triangle A(0:1,1:2) consists of
           !>  the transpose of the last two columns of AP lower.
           !>  This covers the case N odd and TRANSR = 'N'.
           !>
           !>         RFP A                   RFP A
           !>
           !>        02 03 04                00 33 43
           !>        12 13 14                10 11 44
           !>        22 23 24                20 21 22
           !>        00 33 34                30 31 32
           !>        01 11 44                40 41 42
           !>
           !>  Now let TRANSR = 'T'. RFP A in both UPLO cases is just the
           !>  transpose of RFP A above. One therefore gets:
           !>
           !>           RFP A                   RFP A
           !>
           !>     02 12 22 00 01             00 10 20 30 40 50
           !>     03 13 23 33 11             33 11 21 31 41 51
           !>     04 14 24 34 44             43 44 22 32 42 52
           !>

Definition at line 198 of file spftrs.f. πŸ’…


πŸ’œ subroutine zpftrs

subroutine zpftrs (character transr, character uplo, integer n, integer
    nrhs, complex*16, dimension( 0: * ) a, complex*16, dimension( ldb, * )
    b, integer ldb, integer info)

ZPFTRS ✨

Purpose 🎯

Okay so ZPFTRS solves a system of linear equations A*X = B where A is a Hermitian positive definite matrix, using the Cholesky factorization A = U**H*U or A = L*L**H that was computed by ZPFTRF. Iconic behavior only. 🫢

Parameters 🫢

  • TRANSR β€” TRANSR is CHARACTER*1
    • = 'N': The Normal TRANSR of RFP A is stored;
    • = 'C': The Conjugate-transpose TRANSR of RFP A is stored. ⭐
  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangle of RFP A is stored;
    • = 'L': Lower triangle of RFP A is stored.
  • N β€” N is INTEGER
    • 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.
  • A β€” A is COMPLEX*16 array, dimension ( N*(N+1)/2 );
    • The triangular factor U or L from the Cholesky factorization of RFP A = U**H*U or RFP A = L*L**H, as computed by ZPFTRF. See note below for more details about RFP A. πŸ’œ
  • B β€”
  • B β€” B is COMPLEX*16 array, dimension (LDB,NRHS). On entry, the right hand side matrix B. On exit, the 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 πŸ™ˆ

and that's the parameter posse, periodt. no cap, every one accounted for πŸ’…

πŸ‘‘ Author πŸ‘‘

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

🌈 Further Details: 🌈

okay bestie, this next part is a whole packed-storage mood. I'm giving you the source's explanation exactly as it appears, !> markers and all, because we do not mess with the diagrams 🫢

           !>
           !>  We first consider Standard Packed Format when N is even.
           !>  We give an example where N = 6.
           !>
           !>      AP is Upper             AP is Lower
           !>
           !>   00 01 02 03 04 05       00
           !>      11 12 13 14 15       10 11
           !>         22 23 24 25       20 21 22
           !>            33 34 35       30 31 32 33
           !>               44 45       40 41 42 43 44
           !>                  55       50 51 52 53 54 55
           !>
           !>
           !>  Let TRANSR = 'N'. RFP holds AP as follows:
           !>  For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last
           !>  three columns of AP upper. The lower triangle A(4:6,0:2) consists of
           !>  conjugate-transpose of the first three columns of AP upper.
           !>  For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first
           !>  three columns of AP lower. The upper triangle A(0:2,0:2) consists of
           !>  conjugate-transpose of the last three columns of AP lower.
           !>  To denote conjugate we place -- above the element. This covers the
           !>  case N even and TRANSR = 'N'.
           !>
           !>         RFP A                   RFP A
           !>
           !>                                -- -- --
           !>        03 04 05                33 43 53
           !>                                   -- --
           !>        13 14 15                00 44 54
           !>                                      --
           !>        23 24 25                10 11 55
           !>
           !>        33 34 35                20 21 22
           !>        --
           !>        00 44 45                30 31 32
           !>        -- --
           !>        01 11 55                40 41 42
           !>        -- -- --
           !>        02 12 22                50 51 52
           !>
           !>  Now let TRANSR = 'C'. RFP A in both UPLO cases is just the conjugate-
           !>  transpose of RFP A above. One therefore gets:
           !>
           !>
           !>           RFP A                   RFP A
           !>
           !>     -- -- -- --                -- -- -- -- -- --
           !>     03 13 23 33 00 01 02    33 00 10 20 30 40 50
           !>     -- -- -- -- --                -- -- -- -- --
           !>     04 14 24 34 44 11 12    43 44 11 21 31 41 51
           !>     -- -- -- -- -- --                -- -- -- --
           !>     05 15 25 35 45 55 22    53 54 55 22 32 42 52
           !>
           !>
           !>  We next  consider Standard Packed Format when N is odd.
           !>  We give an example where N = 5.
           !>
           !>     AP is Upper                 AP is Lower
           !>
           !>   00 01 02 03 04              00
           !>      11 12 13 14              10 11
           !>         22 23 24              20 21 22
           !>            33 34              30 31 32 33
           !>               44              40 41 42 43 44
           !>
           !>
           !>  Let TRANSR = 'N'. RFP holds AP as follows:
           !>  For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last
           !>  three columns of AP upper. The lower triangle A(3:4,0:1) consists of
           !>  conjugate-transpose of the first two   columns of AP upper.
           !>  For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first
           !>  three columns of AP lower. The upper triangle A(0:1,1:2) consists of
           !>  conjugate-transpose of the last two   columns of AP lower.
           !>  To denote conjugate we place -- above the element. This covers the
           !>  case N odd  and TRANSR = 'N'.
           !>
           !>         RFP A                   RFP A
           !>
           !>                                   -- --
           !>        02 03 04                00 33 43
           !>                                      --
           !>        12 13 14                10 11 44
           !>
           !>        22 23 24                20 21 22
           !>        --
           !>        00 33 34                30 31 32
           !>        -- --
           !>        01 11 44                40 41 42
           !>
           !>  Now let TRANSR = 'C'. RFP A in both UPLO cases is just the conjugate-
           !>  transpose of RFP A above. One therefore gets:
           !>
           !>
           !>           RFP A                   RFP A
           !>
           !>     -- -- --                   -- -- -- -- -- --
           !>     02 12 22 00 01             00 10 20 30 40 50
           !>     -- -- -- --                   -- -- -- -- --
           !>     03 13 23 33 11             33 11 21 31 41 51
           !>     -- -- -- -- --                   -- -- -- --
           !>     04 14 24 34 44             43 44 22 32 42 52
           !>

Definition at line 219 of file zpftrs.f. 🫑

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code.


okay bestie, that's the whole pftrs(3) page β€” source/version is LAPACK Version 3.12.0, the page is pftrs(3), and the footer's date is getting a cute little goodbye kiss instead of being copied line-for-line πŸ’‹πŸŽ€

πŸ“¦ where this page comes from