~ubuntu-branches/ubuntu/wily/octave-miscellaneous/wily

« back to all changes in this revision

Viewing changes to inst/chebyshevpoly.m

  • Committer: Package Import Robot
  • Author(s): Sébastien Villemot, Rafael Laboissiere, Sébastien Villemot
  • Date: 2012-10-17 13:40:55 UTC
  • mfrom: (1.2.1) (12 sid)
  • mto: This revision was merged to the branch mainline in revision 13.
  • Revision ID: package-import@ubuntu.com-20121017134055-vatltexghy77fnv7
Tags: 1.2.0-1
[ Rafael Laboissiere ]
* Imported Upstream version 1.2.0
* Bump Standards-Version to 3.9.4 (no changes needed)
* Refresh for new upstream release
* Use Sébastien Villemot's @debian.org email address
* Remove obsolete DM-Upload-Allowed flag
* Add patch autoload-yes.patch
* Add copyright info for file lauchli.m (included in a Debian patch)
* Add patch partcnt-test-succeeds.patch
* Build-depends on octave-pkg-dev >= 1.0.3

[ Sébastien Villemot ]
* debian/control: fix versioned dependency on debhelper
* Add lintian override for false positive on hardening (fortify)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
## Copyright (C) 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu>
 
2
##
 
3
## This program is free software; you can redistribute it and/or modify it under
 
4
## the terms of the GNU General Public License as published by the Free Software
 
5
## Foundation; either version 3 of the License, or (at your option) any later
 
6
## version.
 
7
##
 
8
## This program is distributed in the hope that it will be useful, but WITHOUT
 
9
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
10
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 
11
## details.
 
12
##
 
13
## You should have received a copy of the GNU General Public License along with
 
14
## this program; if not, see <http://www.gnu.org/licenses/>.
 
15
 
 
16
## -*- texinfo -*-
 
17
## @deftypefn {Function File} {@var{coefs}=} chebyshevpoly (@var{kind},@var{order},@var{x})
 
18
## 
 
19
## Compute the coefficients of the Chebyshev polynomial, given the 
 
20
## @var{order}. We calculate the Chebyshev polynomial using the recurrence
 
21
## relations, Tn+1(x) = (2*x*Tn(x) - Tn-1(x)). The @var{kind} can set to
 
22
## compute the first or second kind chebyshev polynomial.
 
23
##
 
24
## If the value @var{x} is specified, the polynomial is also evaluated,
 
25
## otherwise just the return the coefficients of the polynomial are returned.
 
26
## 
 
27
## This is NOT the generalized Chebyshev polynomial.
 
28
##
 
29
## @end deftypefn
 
30
 
 
31
function h=chebyshevpoly(kind,order,val)
 
32
  if nargin < 2, print_usage, endif
 
33
 
 
34
  h_prev=[0 1];
 
35
  if kind == 1
 
36
    h_now=[1 0];
 
37
  elseif (kind == 2)
 
38
    h_now=[2 0];
 
39
  else
 
40
    error('unknown kind');
 
41
  endif
 
42
 
 
43
  if order == 0
 
44
    h=h_prev;
 
45
  else
 
46
    h=h_now;
 
47
  endif
 
48
 
 
49
  for ord=2:order
 
50
    x=[];y=[];
 
51
    if (length(h_now) < (1+ord))
 
52
      x=0;
 
53
    endif
 
54
    y=zeros(1,(1+ord)-length(h_prev));
 
55
    p1=[h_now, x];
 
56
    p3=[y, h_prev];
 
57
    h=2*p1  -p3;
 
58
    h_prev=h_now;
 
59
    h_now=h;
 
60
  endfor
 
61
 
 
62
  if nargin == 3
 
63
    h=polyval(h,val);
 
64
  endif
 
65
 
 
66
endfunction