LAPACK
3.4.2
LAPACK: Linear Algebra PACKage
Main Page
Modules
Files
File List
File Members
All
Files
Functions
Groups
sasum.f
Go to the documentation of this file.
1
*> \brief \b SASUM
2
*
3
* =========== DOCUMENTATION ===========
4
*
5
* Online html documentation available at
6
* http://www.netlib.org/lapack/explore-html/
7
*
8
* Definition:
9
* ===========
10
*
11
* REAL FUNCTION SASUM(N,SX,INCX)
12
*
13
* .. Scalar Arguments ..
14
* INTEGER INCX,N
15
* ..
16
* .. Array Arguments ..
17
* REAL SX(*)
18
* ..
19
*
20
*
21
*> \par Purpose:
22
* =============
23
*>
24
*> \verbatim
25
*>
26
*> SASUM takes the sum of the absolute values.
27
*> uses unrolled loops for increment equal to one.
28
*> \endverbatim
29
*
30
* Authors:
31
* ========
32
*
33
*> \author Univ. of Tennessee
34
*> \author Univ. of California Berkeley
35
*> \author Univ. of Colorado Denver
36
*> \author NAG Ltd.
37
*
38
*> \date November 2011
39
*
40
*> \ingroup single_blas_level1
41
*
42
*> \par Further Details:
43
* =====================
44
*>
45
*> \verbatim
46
*>
47
*> jack dongarra, linpack, 3/11/78.
48
*> modified 3/93 to return if incx .le. 0.
49
*> modified 12/3/93, array(1) declarations changed to array(*)
50
*> \endverbatim
51
*>
52
* =====================================================================
53
REAL
FUNCTION
sasum
(N,SX,INCX)
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
112
END
BLAS
SRC
sasum.f
Generated on Tue Sep 25 2012 16:27:01 for LAPACK by
1.8.1.1