~ubuntu-branches/ubuntu/karmic/scilab/karmic

« back to all changes in this revision

Viewing changes to routines/calelm/icopy.f

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2002-03-21 16:57:43 UTC
  • Revision ID: james.westby@ubuntu.com-20020321165743-e9mv12c1tb1plztg
Tags: upstream-2.6
ImportĀ upstreamĀ versionĀ 2.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
C/MEMBR ADD NAME=ICOPY,SSI=0
 
2
c     Copyright INRIA
 
3
      subroutine  icopy(n,dx,incx,dy,incy)
 
4
c!but
 
5
c
 
6
c     cette subroutine copie un vecteur dx, de taille n, sur un
 
7
c     vecteur dy.
 
8
c     dans le cas de deux increments egaux a 1, cette subroutine
 
9
c     emploie des boucles "epanouies".
 
10
c     dans le cas ou les increments sont negatifs cette
 
11
c     subroutine prend les composantes en ordre inverse.
 
12
c
 
13
c!liste d'appel
 
14
c
 
15
c      subroutine  dcopy(n,dx,incx,dy,incy)
 
16
c
 
17
c     n: taille du vecteur dx
 
18
c
 
19
c     dx: integer, vecteur "emetteur".
 
20
c
 
21
c     dy: integer, vecteur "recepteur".
 
22
c
 
23
c     incx, incy: increments entre les composantes des vecteurs.
 
24
c
 
25
c!auteur
 
26
c
 
27
c     jack dongarra, linpack, 3/11/78.
 
28
c
 
29
c!
 
30
c
 
31
      integer dx(*),dy(*)
 
32
      integer i,incx,incy,ix,iy,n
 
33
c
 
34
      if(n.le.0)return
 
35
      if(incx.eq.1.and.incy.eq.1)go to 20
 
36
c
 
37
c code for unequal increments or equal increments not equal to 1
 
38
c
 
39
      ix = 1
 
40
      iy = 1
 
41
      if(incx.lt.0)ix = (-n+1)*incx + 1
 
42
      if(incy.lt.0)iy = (-n+1)*incy + 1
 
43
      do 10 i = 1,n
 
44
        dy(iy) = dx(ix)
 
45
        ix = ix + incx
 
46
        iy = iy + incy
 
47
   10 continue
 
48
      return
 
49
c
 
50
c code for both increments equal to 1
 
51
c
 
52
   20 continue
 
53
      do 30 i = 1,n
 
54
        dy(i) = dx(i)
 
55
   30 continue
 
56
c
 
57
      end