spftrf (l) - Linux Man Pages
spftrf: computes the Cholesky factorization of a real symmetric positive definite matrix A
NAMESPFTRF - computes the Cholesky factorization of a real symmetric positive definite matrix A
- SUBROUTINE SPFTRF(
- TRANSR, UPLO, N, A, INFO )
- CHARACTER TRANSR, UPLO
- INTEGER N, INFO
- REAL A( 0: * )
PURPOSESPFTRF computes the Cholesky factorization of a real symmetric positive definite matrix A. The factorization has the form
where U is an upper triangular matrix and L is lower triangular. This is the block version of the algorithm, calling Level 3 BLAS.
- TRANSR (input) CHARACTER
= aqNaq: The Normal TRANSR of RFP A is stored;
= aqTaq: The Transpose TRANSR of RFP A is stored.
- UPLO (input) CHARACTER
= aqUaq: Upper triangle of RFP A is stored;
= aqLaq: Lower triangle of RFP A is stored.
- N (input) INTEGER
- The order of the matrix A. N >= 0.
- A (input/output) REAL array, dimension ( N*(N+1)/2 );
On entry, the symmetric matrix A in RFP format. RFP format is
described by TRANSR, UPLO, and N as follows: If TRANSR = aqNaq
then RFP A is (0:N,0:k-1) when N is even; k=N/2. RFP A is
(0:N-1,0:k) when N is odd; k=N/2. IF TRANSR = aqTaq then RFP is the transpose of RFP A as defined when TRANSR = aqNaq. The contents of RFP A are defined by UPLO as follows: If UPLO = aqUaq the RFP A contains the NT elements of upper packed A. If UPLO = aqLaq the RFP A contains the elements of lower packed A. The LDA of RFP A is (N+1)/2 when TRANSR = aqTaq. When TRANSR is aqNaq the LDA is N+1 when N is even and N is odd. See the Note below for more details. On exit, if INFO = 0, the factor U or L from the Cholesky factorization RFP A = U**T*U or RFP A = L*L**T.
- INFO (output) INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, the leading minor of order i is not positive definite, and the factorization could not be completed.
FURTHER DETAILSWe first consider Rectangular Full Packed (RFP) Format when N is even. We give an example where N = 6.
Let TRANSR = aqNaq. RFP holds AP as follows:
For UPLO = aqUaq 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 = aqLaq 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 = aqNaq.
03 04 05
13 14 15
23 24 25
33 34 35
00 44 45
01 11 55
02 12 22
Now let TRANSR = aqTaq. RFP A in both UPLO cases is just the transpose of RFP A above. One therefore gets:
03 13 23 33 00 01 02