LAPACK  3.6.1
LAPACK: Linear Algebra PACKage
real function sasum ( integer  N,
real, dimension(*)  SX,
integer  INCX 
)

SASUM

Purpose:
    SASUM takes the sum of the absolute values.
    uses unrolled loops for increment equal to one.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011
Further Details:
     jack dongarra, linpack, 3/11/78.
     modified 3/93 to return if incx .le. 0.
     modified 12/3/93, array(1) declarations changed to array(*)

Definition at line 54 of file sasum.f.

54 *
55 * -- Reference BLAS level1 routine (version 3.4.0) --
56 * -- Reference BLAS is a software package provided by Univ. of Tennessee, --
57 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
58 * November 2011
59 *
60 * .. Scalar Arguments ..
61  INTEGER incx,n
62 * ..
63 * .. Array Arguments ..
64  REAL sx(*)
65 * ..
66 *
67 * =====================================================================
68 *
69 * .. Local Scalars ..
70  REAL stemp
71  INTEGER i,m,mp1,nincx
72 * ..
73 * .. Intrinsic Functions ..
74  INTRINSIC abs,mod
75 * ..
76  sasum = 0.0e0
77  stemp = 0.0e0
78  IF (n.LE.0 .OR. incx.LE.0) RETURN
79  IF (incx.EQ.1) THEN
80 * code for increment equal to 1
81 *
82 *
83 * clean-up loop
84 *
85  m = mod(n,6)
86  IF (m.NE.0) THEN
87  DO i = 1,m
88  stemp = stemp + abs(sx(i))
89  END DO
90  IF (n.LT.6) THEN
91  sasum = stemp
92  RETURN
93  END IF
94  END IF
95  mp1 = m + 1
96  DO i = mp1,n,6
97  stemp = stemp + abs(sx(i)) + abs(sx(i+1)) +
98  $ abs(sx(i+2)) + abs(sx(i+3)) +
99  $ abs(sx(i+4)) + abs(sx(i+5))
100  END DO
101  ELSE
102 *
103 * code for increment not equal to 1
104 *
105  nincx = n*incx
106  DO i = 1,nincx,incx
107  stemp = stemp + abs(sx(i))
108  END DO
109  END IF
110  sasum = stemp
111  RETURN
real function sasum(N, SX, INCX)
SASUM
Definition: sasum.f:54

Here is the caller graph for this function: