2
* $Id: dposv.f 19697 2010-10-29 16:57:34Z d3y133 $
1
*> \brief <b> DPOSV computes the solution to system of linear equations A * X = B for PO matrices</b>
3
* =========== DOCUMENTATION ===========
5
* Online html documentation available at
6
* http://www.netlib.org/lapack/explore-html/
9
*> Download DPOSV + dependencies
10
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dposv.f">
12
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dposv.f">
14
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dposv.f">
21
* SUBROUTINE DPOSV( UPLO, N, NRHS, A, LDA, B, LDB, INFO )
23
* .. Scalar Arguments ..
25
* INTEGER INFO, LDA, LDB, N, NRHS
27
* .. Array Arguments ..
28
* DOUBLE PRECISION A( LDA, * ), B( LDB, * )
37
*> DPOSV computes the solution to a real system of linear equations
39
*> where A is an N-by-N symmetric positive definite matrix and X and B
40
*> are N-by-NRHS matrices.
42
*> The Cholesky decomposition is used to factor A as
43
*> A = U**T* U, if UPLO = 'U', or
44
*> A = L * L**T, if UPLO = 'L',
45
*> where U is an upper triangular matrix and L is a lower triangular
46
*> matrix. The factored form of A is then used to solve the system of
47
*> equations A * X = B.
55
*> UPLO is CHARACTER*1
56
*> = 'U': Upper triangle of A is stored;
57
*> = 'L': Lower triangle of A is stored.
63
*> The number of linear equations, i.e., the order of the
70
*> The number of right hand sides, i.e., the number of columns
71
*> of the matrix B. NRHS >= 0.
76
*> A is DOUBLE PRECISION array, dimension (LDA,N)
77
*> On entry, the symmetric matrix A. If UPLO = 'U', the leading
78
*> N-by-N upper triangular part of A contains the upper
79
*> triangular part of the matrix A, and the strictly lower
80
*> triangular part of A is not referenced. If UPLO = 'L', the
81
*> leading N-by-N lower triangular part of A contains the lower
82
*> triangular part of the matrix A, and the strictly upper
83
*> triangular part of A is not referenced.
85
*> On exit, if INFO = 0, the factor U or L from the Cholesky
86
*> factorization A = U**T*U or A = L*L**T.
92
*> The leading dimension of the array A. LDA >= max(1,N).
97
*> B is DOUBLE PRECISION array, dimension (LDB,NRHS)
98
*> On entry, the N-by-NRHS right hand side matrix B.
99
*> On exit, if INFO = 0, the N-by-NRHS solution matrix X.
105
*> The leading dimension of the array B. LDB >= max(1,N).
111
*> = 0: successful exit
112
*> < 0: if INFO = -i, the i-th argument had an illegal value
113
*> > 0: if INFO = i, the leading minor of order i of A is not
114
*> positive definite, so the factorization could not be
115
*> completed, and the solution has not been computed.
121
*> \author Univ. of Tennessee
122
*> \author Univ. of California Berkeley
123
*> \author Univ. of Colorado Denver
126
*> \date November 2011
128
*> \ingroup doublePOsolve
130
* =====================================================================
5
131
SUBROUTINE DPOSV( UPLO, N, NRHS, A, LDA, B, LDB, INFO )
7
* -- LAPACK driver routine (version 2.0) --
8
* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
9
* Courant Institute, Argonne National Lab, and Rice University
133
* -- LAPACK driver routine (version 3.4.0) --
134
* -- LAPACK is a software package provided by Univ. of Tennessee, --
135
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
12
138
* .. Scalar Arguments ..
17
143
DOUBLE PRECISION A( LDA, * ), B( LDB, * )
23
* DPOSV computes the solution to a real system of linear equations
25
* where A is an N-by-N symmetric positive definite matrix and X and B
26
* are N-by-NRHS matrices.
28
* The Cholesky decomposition is used to factor A as
29
* A = U**T* U, if UPLO = 'U', or
30
* A = L * L**T, if UPLO = 'L',
31
* where U is an upper triangular matrix and L is a lower triangular
32
* matrix. The factored form of A is then used to solve the system of
33
* equations A * X = B.
38
* UPLO (input) CHARACTER*1
39
* = 'U': Upper triangle of A is stored;
40
* = 'L': Lower triangle of A is stored.
43
* The number of linear equations, i.e., the order of the
46
* NRHS (input) INTEGER
47
* The number of right hand sides, i.e., the number of columns
48
* of the matrix B. NRHS >= 0.
50
* A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
51
* On entry, the symmetric matrix A. If UPLO = 'U', the leading
52
* N-by-N upper triangular part of A contains the upper
53
* triangular part of the matrix A, and the strictly lower
54
* triangular part of A is not referenced. If UPLO = 'L', the
55
* leading N-by-N lower triangular part of A contains the lower
56
* triangular part of the matrix A, and the strictly upper
57
* triangular part of A is not referenced.
59
* On exit, if INFO = 0, the factor U or L from the Cholesky
60
* factorization A = U**T*U or A = L*L**T.
63
* The leading dimension of the array A. LDA >= max(1,N).
65
* B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
66
* On entry, the N-by-NRHS right hand side matrix B.
67
* On exit, if INFO = 0, the N-by-NRHS solution matrix X.
70
* The leading dimension of the array B. LDB >= max(1,N).
72
* INFO (output) INTEGER
73
* = 0: successful exit
74
* < 0: if INFO = -i, the i-th argument had an illegal value
75
* > 0: if INFO = i, the leading minor of order i of A is not
76
* positive definite, so the factorization could not be
77
* completed, and the solution has not been computed.
79
146
* =====================================================================
81
148
* .. External Functions ..