File: degree.f

package info (click to toggle)
scilab 2.2-4
  • links: PTS
  • area: non-free
  • in suites: hamm
  • size: 31,472 kB
  • ctags: 21,963
  • sloc: fortran: 110,983; ansic: 89,717; makefile: 3,016; sh: 1,892; csh: 150; cpp: 101
file content (33 lines) | stat: -rw-r--r-- 828 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
C/MEMBR ADD NAME=DEGREE,SSI=0
      subroutine degree(iapro,vsn,acap12,adeg)
c!but
c computation of the minimum filter degree (adeg)
c         Nomenclature Rabiner-Gold (page 241)
c         acap12=1/k1
c         vsn=1/k
c!calling sequence
c     subroutine degree (iapro,vsn,acap12,adeg)
c     implicit double precision (a-h,o-z)
c!
c
      implicit double precision (a-h,o-z)
      double precision dellk
c
      go to (10, 20, 20, 30), iapro
c
  10  adeg = log(1.0d+0/acap12)/log(vsn)
      return
c
  20  adeg = arcosh(1.0d+0/acap12)/arcosh(vsn)
      return
c
  30  de = 1.0d+0
      dcap02 = de/vsn
      dcap04 = sqrt(de-dcap02*dcap02)
      dcap12 = acap12
      dcap14 = sqrt(de-dcap12*dcap12)
      dadeg = (dellk(dcap02)*dellk(dcap14))/(dellk(dcap04)*dellk(dcap12)
     &    )
      adeg = dadeg
      return
      end