aboutsummaryrefslogtreecommitdiff
path: root/SRC/dla_syrcond.f
diff options
context:
space:
mode:
authordeaglanhalligan <deaglanhalligan@8a072113-8704-0410-8d35-dd094bca7971>2009-04-08 00:05:18 +0000
committerdeaglanhalligan <deaglanhalligan@8a072113-8704-0410-8d35-dd094bca7971>2009-04-08 00:05:18 +0000
commit47e45705b295f273c6c83f8b7f45a53cbce793d8 (patch)
tree03feea881aabfc40504b1cfdf35d1dd82d19b07d /SRC/dla_syrcond.f
parent1d4ed33a5cfc65afcd46a0babb74979dfbed73f3 (diff)
Updated documentation for EPIR routines. Changed ERRS_{N,C} variable names. Other cosmetic changes.
Diffstat (limited to 'SRC/dla_syrcond.f')
-rw-r--r--SRC/dla_syrcond.f55
1 files changed, 48 insertions, 7 deletions
diff --git a/SRC/dla_syrcond.f b/SRC/dla_syrcond.f
index 2a69e7c0..3ce366e0 100644
--- a/SRC/dla_syrcond.f
+++ b/SRC/dla_syrcond.f
@@ -1,5 +1,6 @@
DOUBLE PRECISION FUNCTION DLA_SYRCOND( UPLO, N, A, LDA, AF, LDAF,
- $ IPIV, CMODE, C, INFO, WORK, IWORK )
+ $ IPIV, CMODE, C, INFO, WORK,
+ $ IWORK )
*
* -- LAPACK routine (version 3.2) --
* -- Contributed by James Demmel, Deaglan Halligan, Yozo Hida and --
@@ -36,9 +37,49 @@
* Arguments
* ==========
*
-* WORK double precision workspace of size 3*N.
+* UPLO (input) CHARACTER*1
+* = 'U': Upper triangle of A is stored;
+* = 'L': Lower triangle of A is stored.
*
-* IWORK integer workspace of size N.
+* N (input) INTEGER
+* The number of linear equations, i.e., the order of the
+* matrix A. N >= 0.
+*
+* A (input) DOUBLE PRECISION array, dimension (LDA,N)
+* On entry, the N-by-N matrix A.
+*
+* LDA (input) INTEGER
+* The leading dimension of the array A. LDA >= max(1,N).
+*
+* AF (input) DOUBLE PRECISION array, dimension (LDAF,N)
+* The block diagonal matrix D and the multipliers used to
+* obtain the factor U or L as computed by DSYTRF.
+*
+* LDAF (input) INTEGER
+* The leading dimension of the array AF. LDAF >= max(1,N).
+*
+* IPIV (input) INTEGER array, dimension (N)
+* Details of the interchanges and the block structure of D
+* as determined by DSYTRF.
+*
+* CMODE (input) INTEGER
+* Determines op2(C) in the formula op(A) * op2(C) as follows:
+* CMODE = 1 op2(C) = C
+* CMODE = 0 op2(C) = I
+* CMODE = -1 op2(C) = inv(C)
+*
+* C (input) DOUBLE PRECISION array, dimension (N)
+* The vector C in the formula op(A) * op2(C).
+*
+* INFO (output) INTEGER
+* = 0: Successful exit.
+* i > 0: The ith argument is invalid.
+*
+* WORK (input) DOUBLE PRECISION array, dimension (3*N).
+* Workspace.
+*
+* IWORK (input) INTEGER array, dimension (N).
+* Workspace.
*
* =====================================================================
*
@@ -160,9 +201,9 @@
END DO
IF ( UP ) THEN
- call dsytrs( 'U', n, 1, af, ldaf, ipiv, work, n, info )
+ CALL DSYTRS( 'U', N, 1, AF, LDAF, IPIV, WORK, N, INFO )
ELSE
- call dsytrs( 'L', n, 1, af, ldaf, ipiv, work, n, info )
+ CALL DSYTRS( 'L', N, 1, AF, LDAF, IPIV, WORK, N, INFO )
ENDIF
*
* Multiply by inv(C).
@@ -191,9 +232,9 @@
END IF
IF ( UP ) THEN
- call dsytrs( 'U', n, 1, af, ldaf, ipiv, work, n, info )
+ CALL DSYTRS( 'U', N, 1, AF, LDAF, IPIV, WORK, N, INFO )
ELSE
- call dsytrs( 'L', n, 1, af, ldaf, ipiv, work, n, info )
+ CALL DSYTRS( 'L', N, 1, AF, LDAF, IPIV, WORK, N, INFO )
ENDIF
*
* Multiply by R.