File:  [local] / rpl / lapack / lapack / dzsum1.f
Revision 1.4: download - view: text, annotated - select for diffs - revision graph
Fri Aug 6 15:32:37 2010 UTC (13 years, 9 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Cohérence

    1:       DOUBLE PRECISION FUNCTION DZSUM1( N, CX, INCX )
    2: *
    3: *  -- LAPACK auxiliary routine (version 3.2) --
    4: *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
    5: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
    6: *     November 2006
    7: *
    8: *     .. Scalar Arguments ..
    9:       INTEGER            INCX, N
   10: *     ..
   11: *     .. Array Arguments ..
   12:       COMPLEX*16         CX( * )
   13: *     ..
   14: *
   15: *  Purpose
   16: *  =======
   17: *
   18: *  DZSUM1 takes the sum of the absolute values of a complex
   19: *  vector and returns a double precision result.
   20: *
   21: *  Based on DZASUM from the Level 1 BLAS.
   22: *  The change is to use the 'genuine' absolute value.
   23: *
   24: *  Contributed by Nick Higham for use with ZLACON.
   25: *
   26: *  Arguments
   27: *  =========
   28: *
   29: *  N       (input) INTEGER
   30: *          The number of elements in the vector CX.
   31: *
   32: *  CX      (input) COMPLEX*16 array, dimension (N)
   33: *          The vector whose elements will be summed.
   34: *
   35: *  INCX    (input) INTEGER
   36: *          The spacing between successive values of CX.  INCX > 0.
   37: *
   38: *  =====================================================================
   39: *
   40: *     .. Local Scalars ..
   41:       INTEGER            I, NINCX
   42:       DOUBLE PRECISION   STEMP
   43: *     ..
   44: *     .. Intrinsic Functions ..
   45:       INTRINSIC          ABS
   46: *     ..
   47: *     .. Executable Statements ..
   48: *
   49:       DZSUM1 = 0.0D0
   50:       STEMP = 0.0D0
   51:       IF( N.LE.0 )
   52:      $   RETURN
   53:       IF( INCX.EQ.1 )
   54:      $   GO TO 20
   55: *
   56: *     CODE FOR INCREMENT NOT EQUAL TO 1
   57: *
   58:       NINCX = N*INCX
   59:       DO 10 I = 1, NINCX, INCX
   60: *
   61: *        NEXT LINE MODIFIED.
   62: *
   63:          STEMP = STEMP + ABS( CX( I ) )
   64:    10 CONTINUE
   65:       DZSUM1 = STEMP
   66:       RETURN
   67: *
   68: *     CODE FOR INCREMENT EQUAL TO 1
   69: *
   70:    20 CONTINUE
   71:       DO 30 I = 1, N
   72: *
   73: *        NEXT LINE MODIFIED.
   74: *
   75:          STEMP = STEMP + ABS( CX( I ) )
   76:    30 CONTINUE
   77:       DZSUM1 = STEMP
   78:       RETURN
   79: *
   80: *     End of DZSUM1
   81: *
   82:       END

CVSweb interface <joel.bertrand@systella.fr>