35 SUBROUTINE daxpy(n,da,dx,incx,dy,incy)
37 DOUBLE PRECISION :: dx(*),dy(*),da
38 INTEGER :: i,incx,incy,ix,iy,m,mp1,n
41 IF (da == 0.0d0) return
42 IF(incx == 1.AND.incy == 1)go to 20
49 IF(incx < 0)ix = (-n+1)*incx + 1
50 IF(incy < 0)iy = (-n+1)*incy + 1
52 dy(iy) = dy(iy) + da*dx(ix)
66 dy(i) = dy(i) + da*dx(i)
71 dy(i) = dy(i) + da*dx(i)
72 dy(i + 1) = dy(i + 1) + da*dx(i + 1)
73 dy(i + 2) = dy(i + 2) + da*dx(i + 2)
74 dy(i + 3) = dy(i + 3) + da*dx(i + 3)
92 SUBROUTINE dcopy(n,dx,incx,dy,incy)
94 DOUBLE PRECISION :: dx(*),dy(*)
95 INTEGER :: i,incx,incy,ix,iy,m,mp1,n
98 IF(incx == 1.AND.incy == 1)go to 20
105 IF(incx < 0)ix = (-n+1)*incx + 1
106 IF(incy < 0)iy = (-n+1)*incy + 1
120 IF( m == 0 ) go to 40
128 dy(i + 1) = dx(i + 1)
129 dy(i + 2) = dx(i + 2)
130 dy(i + 3) = dx(i + 3)
131 dy(i + 4) = dx(i + 4)
132 dy(i + 5) = dx(i + 5)
133 dy(i + 6) = dx(i + 6)
152 DOUBLE PRECISION FUNCTION ddot(n,dx,incx,dy,incy)
154 DOUBLE PRECISION :: dx(*),dy(*),dtemp
155 INTEGER :: i,incx,incy,ix,iy,m,mp1,n
160 IF(incx == 1.AND.incy == 1)go to 20
167 IF(incx < 0)ix = (-n+1)*incx + 1
168 IF(incy < 0)iy = (-n+1)*incy + 1
170 dtemp = dtemp + dx(ix)*dy(iy)
183 IF( m == 0 ) go to 40
185 dtemp = dtemp + dx(i)*dy(i)
190 dtemp = dtemp + dx(i)*dy(i) + dx(i + 1)*dy(i + 1) + &
191 dx(i + 2)*dy(i + 2) + dx(i + 3)*dy(i + 3) + dx(i + 4)*dy(i + 4)
212 DOUBLE PRECISION FUNCTION dnrm2 ( n, x, incx )
214 implicit
DOUBLE PRECISION (a-h,o-z)
216 DOUBLE PRECISION :: x(*)
219 parameter(one = 1.0d+0, zero = 0.0d+0 )
220 DOUBLE PRECISION :: norm
229 ELSE IF (n == 1)
THEN
236 DO ix = 1, 1+(n-1)*incx, incx
238 IF (x(ix) /= zero)
THEN
241 IF (scale < absxi)
THEN
242 ssq = one + ssq*(scale/absxi)**2
245 ssq = ssq + (absxi/scale)**2
251 IF (scale < flmax/sqt)
THEN
278 DOUBLE PRECISION :: a, x(n), y(n), z(n)
301 DOUBLE PRECISION :: const, x(n)
328 DOUBLE PRECISION :: a, x(n), y(n)