1 function dasum ( n, x, incx )
52 real ( kind = 8 )
dasum
53 integer ( kind = 4 ) incx
54 integer ( kind = 4 ) n
55 real ( kind = 8 ) x(*)
57 dasum = sum( abs( x(1:1+(n-1)*incx:incx) ) )
61 subroutine daxpy ( n, da, dx, incx, dy, incy )
121 real ( kind = 8 ) dx(*)
122 real ( kind = 8 ) dy(*)
123 integer ( kind = 4 ) i
124 integer ( kind = 4 ) incx
125 integer ( kind = 4 ) incy
126 integer ( kind = 4 ) ix
127 integer ( kind = 4 ) iy
128 integer ( kind = 4 ) m
129 integer ( kind = 4 ) n
135 if ( da == 0.0d+00 )
then
142 if ( incx /= 1 .or. incy /= 1 )
then
144 if ( 0 <= incx )
then
147 ix = ( - n + 1 ) * incx + 1
150 if ( 0 <= incy )
then
153 iy = ( - n + 1 ) * incy + 1
157 dy(iy) = dy(iy) + da * dx(ix)
168 dy(1:m) = dy(1:m) + da * dx(1:m)
171 dy(i ) = dy(i ) + da * dx(i )
172 dy(i+1) = dy(i+1) + da * dx(i+1)
173 dy(i+2) = dy(i+2) + da * dx(i+2)
174 dy(i+3) = dy(i+3) + da * dx(i+3)
181 subroutine dcopy ( n, dx, incx, dy, incy )
237 integer ( kind = 4 ) i
238 integer ( kind = 4 ) incx
239 integer ( kind = 4 ) incy
240 integer ( kind = 4 ) ix
241 integer ( kind = 4 ) iy
242 integer ( kind = 4 ) m
243 integer ( kind = 4 ) n
244 real ( kind = 8 ) dx(*)
245 real ( kind = 8 ) dy(*)
251 if ( incx == 1 .and. incy == 1 )
then
263 dy(i + 1) = dx(i + 1)
264 dy(i + 2) = dx(i + 2)
265 dy(i + 3) = dx(i + 3)
266 dy(i + 4) = dx(i + 4)
267 dy(i + 5) = dx(i + 5)
268 dy(i + 6) = dx(i + 6)
273 if ( 0 <= incx )
then
276 ix = ( -n + 1 ) * incx + 1
279 if ( 0 <= incy )
then
282 iy = ( -n + 1 ) * incy + 1
295 function ddot ( n, dx, incx, dy, incy )
348 real ( kind = 8 )
ddot
349 real ( kind = 8 ) dx(*)
350 real ( kind = 8 ) dy(*)
351 integer ( kind = 4 ) incx
352 integer ( kind = 4 ) incy
353 integer ( kind = 4 ) n
354 integer ( kind = 4 ) x1
355 integer ( kind = 4 ) xi
356 integer ( kind = 4 ) xn
357 integer ( kind = 4 ) y1
358 integer ( kind = 4 ) yi
359 integer ( kind = 4 ) yn
365 xn = 1 + ( n - 1 ) * incx
368 x1 = 1 + ( n - 1 ) * incx
375 yn = 1 + ( n - 1 ) * incy
378 y1 = 1 + ( n - 1 ) * incy
383 ddot = dot_product( dx(x1:xn:xi), dy(y1:yn:yi) )
440 real ( kind = 8 ) absxi
441 real ( kind = 8 )
dnrm2
442 integer ( kind = 4 ) incx
443 integer ( kind = 4 ) ix
444 integer ( kind = 4 ) n
445 real ( kind = 8 ) norm
446 real ( kind = 8 ) scale
447 real ( kind = 8 ) ssq
448 real ( kind = 8 ) x(*)
450 if ( n < 1 .or. incx < 1 )
then
454 else if ( n == 1 )
then
463 do ix = 1, 1 + ( n - 1 ) * incx, incx
464 if ( x(ix) /= 0.0d+00 )
then
466 if ( scale < absxi )
then
467 ssq = 1.0d+00 + ssq * ( scale / absxi )**2
470 ssq = ssq + ( absxi / scale )**2
474 norm = scale * sqrt( ssq )
481 subroutine drot ( n, x, incx, y, incy, c, s )
539 integer ( kind = 4 ) i
540 integer ( kind = 4 ) incx
541 integer ( kind = 4 ) incy
542 integer ( kind = 4 ) ix
543 integer ( kind = 4 ) iy
544 integer ( kind = 4 ) n
546 real ( kind = 8 ) stemp
547 real ( kind = 8 ) x(*)
548 real ( kind = 8 ) y(*)
552 else if ( incx == 1 .and. incy == 1 )
then
555 stemp = c * x(i) + s * y(i)
556 y(i) = c * y(i) - s * x(i)
562 if ( 0 <= incx )
then
565 ix = ( - n + 1 ) * incx + 1
568 if ( 0 <= incy )
then
571 iy = ( - n + 1 ) * incy + 1
575 stemp = c * x(ix) + s * y(iy)
576 y(iy) = c * y(iy) - s * x(ix)
665 real ( kind = 8 ) roe
669 real ( kind = 8 ) scale
672 if ( abs( sb ) < abs( sa ) )
then
678 scale = abs( sa ) + abs( sb )
680 if ( scale == 0.0d+00 )
then
685 r = scale * sqrt( ( sa / scale )**2 + ( sb / scale )**2 )
686 r = sign( 1.0d+00, roe ) * r
691 if ( 0.0d+00 < abs( c ) .and. abs( c ) <= s )
then
753 integer ( kind = 4 ) i
754 integer ( kind = 4 ) incx
755 integer ( kind = 4 ) ix
756 integer ( kind = 4 ) m
757 integer ( kind = 4 ) n
759 real ( kind = 8 ) x(*)
763 else if ( incx == 1 )
then
779 if ( 0 <= incx )
then
782 ix = ( - n + 1 ) * incx + 1
794 subroutine dswap ( n, x, incx, y, incy )
848 integer ( kind = 4 ) i
849 integer ( kind = 4 ) incx
850 integer ( kind = 4 ) incy
851 integer ( kind = 4 ) ix
852 integer ( kind = 4 ) iy
853 integer ( kind = 4 ) m
854 integer ( kind = 4 ) n
855 real ( kind = 8 ) temp
856 real ( kind = 8 ) x(*)
857 real ( kind = 8 ) y(*)
861 else if ( incx == 1 .and. incy == 1 )
then
889 if ( 0 <= incx )
then
892 ix = ( - n + 1 ) * incx + 1
895 if ( 0 <= incy )
then
898 iy = ( - n + 1 ) * incy + 1
965 real ( kind = 8 ) dmax
966 real ( kind = 8 ) dx(*)
967 integer ( kind = 4 ) i
968 integer ( kind = 4 ) idamax
969 integer ( kind = 4 ) incx
970 integer ( kind = 4 ) ix
971 integer ( kind = 4 ) n
975 if ( n < 1 .or. incx <= 0 )
then
985 if ( incx == 1 )
then
990 if ( dmax < abs( dx(i) ) )
then
1003 if ( dmax < abs( dx(ix) ) )
then
1005 dmax = abs( dx(ix) )
real(kind=8) function ddot(n, dx, incx, dy, incy)
real(kind=8) function dnrm2(n, x, incx)
integer(kind=4) function idamax(n, dx, incx)
subroutine dscal(n, sa, x, incx)
subroutine dswap(n, x, incx, y, incy)
subroutine drot(n, x, incx, y, incy, c, s)
subroutine daxpy(n, da, dx, incx, dy, incy)
real(kind=8) function dasum(n, x, incx)
subroutine drotg(sa, sb, c, s)
subroutine dcopy(n, dx, incx, dy, incy)