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

« back to all changes in this revision

Viewing changes to routines/calelm/dvmul.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
      subroutine dvmul(n,dx,incx,dy,incy)
 
2
c!but
 
3
c
 
4
c     etant donne un vecteur dx et un vecteur dy,
 
5
c      cette subroutine fait:
 
6
c                    dy = dy * dx
 
7
c     quand les deux increments sont egaux a un, cette
 
8
c     subroutine emploie des boucles "epanouis". dans le cas ou
 
9
c     les increments sont negatifs, cette subroutine prend
 
10
c     les composantes en ordre inverse.
 
11
c
 
12
c!liste d'appel
 
13
c
 
14
c     subroutine dvmul(n,dx,incx,dy,incy)
 
15
c
 
16
c     dy, dx: vecteurs double precision.
 
17
c
 
18
c     incx, incy: increments entre deux composantes succesives
 
19
c     des vecteurs.
 
20
c
 
21
c!auteur
 
22
c
 
23
c     serge steer inria
 
24
c!
 
25
c     Copyright INRIA
 
26
      double precision dx(*),dy(*)
 
27
      integer i,incx,incy,ix,iy,n
 
28
c
 
29
      if(n.le.0)return
 
30
      if(incx.eq.1.and.incy.eq.1)go to 20
 
31
c
 
32
c code for unequal increments or equal increments not equal to 1
 
33
c
 
34
      ix = 1
 
35
      iy = 1
 
36
      if(incx.lt.0)ix = (-n+1)*incx + 1
 
37
      if(incy.lt.0)iy = (-n+1)*incy + 1
 
38
      do 10 i = 1,n
 
39
        dy(iy) = dy(iy) * dx(ix)
 
40
        ix = ix + incx
 
41
        iy = iy + incy
 
42
   10 continue
 
43
      return
 
44
c
 
45
c code for both increments equal to 1
 
46
c
 
47
   20 continue
 
48
      do 30 i = 1,n
 
49
        dy(i) = dy(i) * dx(i)
 
50
   30 continue
 
51
c
 
52
      end