Extend laplace(t^z,t,s) to complex z
[maxima.git] / share / lbfgs / daxpy.f
blobbdb3679f308a23ef86508dd4bc2181c459d9c97a
3 C ----------------------------------------------------------
5 subroutine daxpy(n,da,dx,incx,dy,incy)
7 c constant times a vector plus a vector.
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),da
12 integer i,incx,incy,ix,iy,m,mp1,n
14 if(n.le.0)return
15 if (da .eq. 0.0d0) return
16 if(incx.eq.1.and.incy.eq.1)go to 20
18 c code for unequal increments or equal increments
19 c not equal to 1
21 ix = 1
22 iy = 1
23 if(incx.lt.0)ix = (-n+1)*incx + 1
24 if(incy.lt.0)iy = (-n+1)*incy + 1
25 do 10 i = 1,n
26 dy(iy) = dy(iy) + da*dx(ix)
27 ix = ix + incx
28 iy = iy + incy
29 10 continue
30 return
32 c code for both increments equal to 1
35 c clean-up loop
37 20 m = mod(n,4)
38 if( m .eq. 0 ) go to 40
39 do 30 i = 1,m
40 dy(i) = dy(i) + da*dx(i)
41 30 continue
42 if( n .lt. 4 ) return
43 40 mp1 = m + 1
44 do 50 i = mp1,n,4
45 dy(i) = dy(i) + da*dx(i)
46 dy(i + 1) = dy(i + 1) + da*dx(i + 1)
47 dy(i + 2) = dy(i + 2) + da*dx(i + 2)
48 dy(i + 3) = dy(i + 3) + da*dx(i + 3)
49 50 continue
50 return
51 end