LAPACK
3.4.2
LAPACK: Linear Algebra PACKage
Main Page
Modules
Files
File List
File Members
All
Files
Functions
Groups
dcopy.f
Go to the documentation of this file.
1
*> \brief \b DCOPY
2
*
3
* =========== DOCUMENTATION ===========
4
*
5
* Online html documentation available at
6
* http://www.netlib.org/lapack/explore-html/
7
*
8
* Definition:
9
* ===========
10
*
11
* SUBROUTINE DCOPY(N,DX,INCX,DY,INCY)
12
*
13
* .. Scalar Arguments ..
14
* INTEGER INCX,INCY,N
15
* ..
16
* .. Array Arguments ..
17
* DOUBLE PRECISION DX(*),DY(*)
18
* ..
19
*
20
*
21
*> \par Purpose:
22
* =============
23
*>
24
*> \verbatim
25
*>
26
*> DCOPY copies a vector, x, to a vector, y.
27
*> uses unrolled loops for increments 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 double_blas_level1
41
*
42
*> \par Further Details:
43
* =====================
44
*>
45
*> \verbatim
46
*>
47
*> jack dongarra, linpack, 3/11/78.
48
*> modified 12/3/93, array(1) declarations changed to array(*)
49
*> \endverbatim
50
*>
51
* =====================================================================
52
SUBROUTINE
dcopy
(N,DX,INCX,DY,INCY)
53
*
54
* -- Reference BLAS level1 routine (version 3.4.0) --
55
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
56
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
57
* November 2011
58
*
59
* .. Scalar Arguments ..
60
INTEGER
incx,incy,n
61
* ..
62
* .. Array Arguments ..
63
DOUBLE PRECISION
dx(*),dy(*)
64
* ..
65
*
66
* =====================================================================
67
*
68
* .. Local Scalars ..
69
INTEGER
i,ix,iy,m,mp1
70
* ..
71
* .. Intrinsic Functions ..
72
INTRINSIC
mod
73
* ..
74
IF
(n.LE.0) return
75
IF
(incx.EQ.1 .AND. incy.EQ.1)
THEN
76
*
77
* code for both increments equal to 1
78
*
79
*
80
* clean-up loop
81
*
82
m = mod(n,7)
83
IF
(m.NE.0)
THEN
84
DO
i = 1,m
85
dy(i) = dx(i)
86
END DO
87
IF
(n.LT.7) return
88
END IF
89
mp1 = m + 1
90
DO
i = mp1,n,7
91
dy(i) = dx(i)
92
dy(i+1) = dx(i+1)
93
dy(i+2) = dx(i+2)
94
dy(i+3) = dx(i+3)
95
dy(i+4) = dx(i+4)
96
dy(i+5) = dx(i+5)
97
dy(i+6) = dx(i+6)
98
END DO
99
ELSE
100
*
101
* code for unequal increments or equal increments
102
* not equal to 1
103
*
104
ix = 1
105
iy = 1
106
IF
(incx.LT.0) ix = (-n+1)*incx + 1
107
IF
(incy.LT.0) iy = (-n+1)*incy + 1
108
DO
i = 1,n
109
dy(iy) = dx(ix)
110
ix = ix + incx
111
iy = iy + incy
112
END DO
113
END IF
114
return
115
END
BLAS
SRC
dcopy.f
Generated on Tue Sep 25 2012 16:26:59 for LAPACK by
1.8.1.1