~ubuntu-branches/ubuntu/lucid/octave-nlwing2/lucid

« back to all changes in this revision

Viewing changes to inst/polppder.m

  • Committer: Bazaar Package Importer
  • Author(s): Rafael Laboissiere
  • Date: 2009-05-24 18:48:42 UTC
  • Revision ID: james.westby@ubuntu.com-20090524184842-bgxoav6c0rjd0isr
Tags: upstream-1.1.1
ImportĀ upstreamĀ versionĀ 1.1.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
% Copyright (C) 2008  VZLU Prague, a.s., Czech Republic
 
2
 
3
% Author: Jaroslav Hajek <highegg@gmail.com>
 
4
 
5
% This file is part of NLWing2.
 
6
 
7
% NLWing2 is free software; you can redistribute it and/or modify
 
8
% it under the terms of the GNU General Public License as published by
 
9
% the Free Software Foundation; either version 3 of the License, or
 
10
% (at your option) any later version.
 
11
 
12
% This program is distributed in the hope that it will be useful,
 
13
% but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
% GNU General Public License for more details.
 
16
 
17
% You should have received a copy of the GNU General Public License
 
18
% along with this software; see the file COPYING.  If not, see
 
19
% <http://www.gnu.org/licenses/>.
 
20
 
21
 
 
22
% @deftypefn{Function File} {ppd =} polppder (pp)
 
23
% Differentiates a piecewise polynomial structure.
 
24
% @end deftypefn
 
25
function ppd = polppder (pp)
 
26
  ppd.x = pp.x;
 
27
  ppd.n = pp.n;
 
28
  ppd.d = pp.d;
 
29
 
 
30
  if (pp.k <= 1)
 
31
    ppd.k = 1;
 
32
    pp.P = zeros (size (pp.P, 1), 1);
 
33
  else
 
34
    k = ppd.k = pp.k - 1;
 
35
    ppd.P = pp.P(:,1:k) * diag (k:-1:1);
 
36
  endif
 
37
endfunction