PLASMA
2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
Main Page
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
spotri.f
Go to the documentation of this file.
1
SUBROUTINE
spotri
( UPLO, N, A, LDA, INFO )
2
*
3
* -- LAPACK routine (version 3.2) --
4
* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5
* November 2006
6
*
7
* .. Scalar Arguments ..
8
CHARACTER
uplo
9
INTEGER
info, lda, n
10
* ..
11
* .. Array Arguments ..
12
REAL
a( lda, * )
13
* ..
14
*
15
* Purpose
16
* =======
17
*
18
* SPOTRI computes the inverse of a real symmetric positive definite
19
* matrix A using the Cholesky factorization A = U**T*U or A = L*L**T
20
* computed by SPOTRF.
21
*
22
* Arguments
23
* =========
24
*
25
* UPLO (input) CHARACTER*1
26
* = 'U': Upper triangle of A is stored;
27
* = 'L': Lower triangle of A is stored.
28
*
29
* N (input) INTEGER
30
* The order of the matrix A. N >= 0.
31
*
32
* A (input/output) REAL array, dimension (LDA,N)
33
* On entry, the triangular factor U or L from the Cholesky
34
* factorization A = U**T*U or A = L*L**T, as computed by
35
* SPOTRF.
36
* On exit, the upper or lower triangle of the (symmetric)
37
* inverse of A, overwriting the input factor U or L.
38
*
39
* LDA (input) INTEGER
40
* The leading dimension of the array A. LDA >= max(1,N).
41
*
42
* INFO (output) INTEGER
43
* = 0: successful exit
44
* < 0: if INFO = -i, the i-th argument had an illegal value
45
* > 0: if INFO = i, the (i,i) element of the factor U or L is
46
* zero, and the inverse could not be computed.
47
*
48
* =====================================================================
49
*
50
* .. External Functions ..
51
LOGICAL
lsame
52
EXTERNAL
lsame
53
* ..
54
* .. External Subroutines ..
55
EXTERNAL
slauum
,
strtri
,
xerbla
56
* ..
57
* .. Intrinsic Functions ..
58
INTRINSIC
max
59
* ..
60
* .. Executable Statements ..
61
*
62
* Test the input parameters.
63
*
64
info = 0
65
IF
( .NOT.lsame(
uplo
,
'U'
) .AND. .NOT.lsame(
uplo
,
'L'
) )
THEN
66
info = -1
67
ELSE
IF
( n.LT.0 )
THEN
68
info = -2
69
ELSE
IF
( lda.LT.
max
( 1, n ) )
THEN
70
info = -4
71
END IF
72
IF
( info.NE.0 )
THEN
73
CALL
xerbla
(
'SPOTRI'
, -info )
74
return
75
END IF
76
*
77
* Quick return if possible
78
*
79
IF
( n.EQ.0 )
80
$ return
81
*
82
* Invert the triangular Cholesky factor U or L.
83
*
84
CALL
strtri
(
uplo
,
'Non-unit'
, n, a, lda, info )
85
IF
( info.GT.0 )
86
$ return
87
*
88
* Form inv(U)*inv(U)' or inv(L)'*inv(L).
89
*
90
CALL
slauum
(
uplo
, n, a, lda, info )
91
*
92
return
93
*
94
* End of SPOTRI
95
*
96
END
plasma_2.4.5
testing
lin
spotri.f
Generated on Mon Jul 9 2012 12:45:04 for PLASMA by
1.8.1