3 C ----------------------------------------------------------
5 double precision function ddot
(n
,dx
,incx
,dy
,incy
)
7 c forms the dot product of two vectors.
8 c uses unrolled loops for increments equal to one.
9 c jack dongarra, linpack, 3/11/78.
11 double precision dx
(1),dy
(1),dtemp
12 integer i
,incx
,incy
,ix
,iy
,m
,mp1
,n
17 if(incx
.eq
.1.and
.incy
.eq
.1)go to 20
19 c code for unequal increments or equal increments
24 if(incx
.lt
.0)ix
= (-n
+1)*incx
+ 1
25 if(incy
.lt
.0)iy
= (-n
+1)*incy
+ 1
27 dtemp
= dtemp
+ dx
(ix
)*dy
(iy
)
34 c code for both increments equal to 1
40 if( m
.eq
. 0 ) go to 40
42 dtemp
= dtemp
+ dx
(i
)*dy
(i
)
44 if( n
.lt
. 5 ) go to 60
47 dtemp
= dtemp
+ dx
(i
)*dy
(i
) + dx
(i
+ 1)*dy
(i
+ 1) +
48 * dx
(i
+ 2)*dy
(i
+ 2) + dx
(i
+ 3)*dy
(i
+ 3) + dx
(i
+ 4)*dy
(i
+ 4)