Blame view
fvn_fnlib/csevl.f
1.04 KB
38581db0c 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 |