~ubuntu-branches/ubuntu/hoary/scilab/hoary

« back to all changes in this revision

Viewing changes to routines/signal/bldenz.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 bldenz(ndeg,nj,zfa,zpr,zpi,nb,fact,c1,c0)
 
2
c!purpose
 
3
c  build denominator blocks of second order  --  z-domain
 
4
c!calling sequence
 
5
c     subroutine bldenz (ndeg,nj,zfa,zpr,zpi,nb,fact,c1,c0)
 
6
c     implicit double precision (a-h,o-z)
 
7
c     double precision zpr(*),zpi(*)
 
8
c     double precision c1(*),c0(*)
 
9
c!
 
10
      implicit double precision (a-h,o-z)
 
11
      double precision zpr(*),zpi(*)
 
12
      double precision c1(*),c0(*)
 
13
      flmi=2.0d+0*dlamch('p')
 
14
      nb = (ndeg+1)/2
 
15
      n = 0
 
16
      fact = zfa
 
17
      do 40 i=1,nb
 
18
        n = n + 1
 
19
        qr = zpr(n)
 
20
        qi = zpi(n)
 
21
         if (abs(qi).lt.flmi) go to 10
 
22
        c1(i) = -2.0d+0*qr
 
23
        c0(i) = qr*qr + qi*qi
 
24
        go to 40
 
25
  10    if (n.ge.nj) go to 20
 
26
        if (abs(zpi(n+1)).lt.flmi) go to 30
 
27
  20    c1(i) = -qr
 
28
        c0(i) = 0.0d+0
 
29
        go to 40
 
30
  30    n = n + 1
 
31
        qi = zpr(n)
 
32
        c1(i) = -qr - qi
 
33
        c0(i) = qr*qi
 
34
  40  continue
 
35
      return
 
36
      end