diff options
author | deaglanhalligan <deaglanhalligan@8a072113-8704-0410-8d35-dd094bca7971> | 2009-04-08 00:05:18 +0000 |
---|---|---|
committer | deaglanhalligan <deaglanhalligan@8a072113-8704-0410-8d35-dd094bca7971> | 2009-04-08 00:05:18 +0000 |
commit | 47e45705b295f273c6c83f8b7f45a53cbce793d8 (patch) | |
tree | 03feea881aabfc40504b1cfdf35d1dd82d19b07d /SRC/dla_syrcond.f | |
parent | 1d4ed33a5cfc65afcd46a0babb74979dfbed73f3 (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.f | 55 |
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. |