Blame view

fvn_fnlib/csevl.f 1.04 KB
38581db0c   daniau   git-svn-id: https...
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
34
35
        function csevl (x, cs, n)
  c april 1977 version.  w. fullerton, c3, los alamos scientific lab.
  c
  c evaluate the n-term chebyshev series cs at x.  adapted from
  c r. broucke, algorithm 446, c.a.c.m., 16, 254 (1973).  also see fox
  c and parker, chebyshev polys in numerical analysis, oxford press, p.56.
  c
  c             input arguments --
  c x      value at which the series is to be evaluated.
  c cs     array of n terms of a chebyshev series.  in eval-
  c        uating cs, only half the first coef is summed.
  c n      number of terms in array cs.
  c
        dimension cs(1)
  c
        if (n.lt.1) call seteru (28hcsevl   number of terms le 0, 28, 2,2)
        if (n.gt.1000) call seteru (31hcsevl   number of terms gt 1000,
       1  31, 3, 2)
        if (x.lt.(-1.1) .or. x.gt.1.1) call seteru (
       1  25hcsevl   x outside (-1,+1), 25, 1, 1)
  c
        b1 = 0.
        b0 = 0.
        twox = 2.*x
        do 10 i=1,n
          b2 = b1
          b1 = b0
          ni = n + 1 - i
          b0 = twox*b1 - b2 + cs(ni)
   10   continue
  c
        csevl = 0.5 * (b0-b2)
  c
        return
        end