Mercurial > hg > octave-lyh
annotate scripts/polynomial/pchip.m @ 17441:2973de961a66
stairs.m: Overhaul function.
* scripts/plot/stairs.m: Clean up indentation. Fix input validation
for size mismatch and linestyle arguments. Correctly implement color
rotation for multiple columns. Accept linestyle argument to change
line and marker properties. Add titles to %!demos. Add %!error tests
for input validation.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 18 Sep 2013 13:01:48 -0700 |
parents | 1c89599167a6 |
children |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
14104
diff
changeset
|
1 ## Copyright (C) 2001-2012 Kai Habel |
5837 | 2 ## |
6440 | 3 ## This file is part of Octave. |
5837 | 4 ## |
6440 | 5 ## Octave is free software; you can redistribute it and/or modify it |
6 ## under the terms of the GNU General Public License as published by | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
6440 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
5837 | 14 ## |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
5837 | 18 |
19 ## -*- texinfo -*- | |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
9768
diff
changeset
|
20 ## @deftypefn {Function File} {@var{pp} =} pchip (@var{x}, @var{y}) |
7650 | 21 ## @deftypefnx {Function File} {@var{yi} =} pchip (@var{x}, @var{y}, @var{xi}) |
14104
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
22 ## Return the Piecewise Cubic Hermite Interpolating Polynomial (pchip) of |
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
23 ## points @var{x} and @var{y}. |
5837 | 24 ## |
14104
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
25 ## If called with two arguments, return the piecewise polynomial @var{pp} |
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
26 ## that may be used with @code{ppval} to evaluate the polynomial at specific |
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
27 ## points. When called with a third input argument, @code{pchip} evaluates |
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
28 ## the pchip polynomial at the points @var{xi}. The third calling form is |
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
29 ## equivalent to @code{ppval (pchip (@var{x}, @var{y}), @var{xi})}. |
5837 | 30 ## |
31 ## The variable @var{x} must be a strictly monotonic vector (either | |
14104
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
32 ## increasing or decreasing) of length @var{n}. @var{y} can be either a |
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
33 ## vector or array. If @var{y} is a vector then it must be the same length |
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
34 ## @var{n} as @var{x}. If @var{y} is an array then the size of @var{y} must |
5837 | 35 ## have the form |
36 ## @tex | |
37 ## $$[s_1, s_2, \cdots, s_k, n]$$ | |
38 ## @end tex | |
8517
81d6ab3ac93c
Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents:
7650
diff
changeset
|
39 ## @ifnottex |
5837 | 40 ## @code{[@var{s1}, @var{s2}, @dots{}, @var{sk}, @var{n}]} |
8517
81d6ab3ac93c
Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents:
7650
diff
changeset
|
41 ## @end ifnottex |
14104
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
42 ## The array is reshaped internally to a matrix where the leading |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11536
diff
changeset
|
43 ## dimension is given by |
5837 | 44 ## @tex |
45 ## $$s_1 s_2 \cdots s_k$$ | |
46 ## @end tex | |
8517
81d6ab3ac93c
Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents:
7650
diff
changeset
|
47 ## @ifnottex |
5837 | 48 ## @code{@var{s1} * @var{s2} * @dots{} * @var{sk}} |
8517
81d6ab3ac93c
Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents:
7650
diff
changeset
|
49 ## @end ifnottex |
14104
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
50 ## and each row of this matrix is then treated separately. Note that this |
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
51 ## is exactly opposite to @code{interp1} but is done for @sc{matlab} |
614505385171
doc: Overhaul docstrings for polynomial functions.
Rik <octave@nomad.inbox5.com>
parents:
12608
diff
changeset
|
52 ## compatibility. |
5837 | 53 ## |
54 ## @seealso{spline, ppval, mkpp, unmkpp} | |
55 ## @end deftypefn | |
56 | |
57 ## Author: Kai Habel <kai.habel@gmx.de> | |
58 ## Date: 9. mar 2001 | |
59 ## | |
60 ## S_k = a_k + b_k*x + c_k*x^2 + d_k*x^3; (spline polynom) | |
61 ## | |
62 ## 4 conditions: | |
63 ## S_k(x_k) = y_k; | |
64 ## S_k(x_k+1) = y_k+1; | |
65 ## S_k'(x_k) = y_k'; | |
66 ## S_k'(x_k+1) = y_k+1'; | |
67 | |
68 function ret = pchip (x, y, xi) | |
69 | |
70 if (nargin < 2 || nargin > 3) | |
71 print_usage (); | |
72 endif | |
73 | |
12608
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
74 ## make row vector |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
75 x = x(:).'; |
5837 | 76 n = length (x); |
77 | |
78 ## Check the size and shape of y | |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
79 if (isvector (y)) |
12608
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
80 y = y(:).'; ##row vector |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
81 szy = size (y); |
14552
86854d032a37
maint: miscellaneous style fixes for .m files
John W. Eaton <jwe@octave.org>
parents:
14465
diff
changeset
|
82 if (! size_equal (x, y)) |
15202
f3b5cadfd6d5
fix missing semicolons in various .m files
John W. Eaton <jwe@octave.org>
parents:
14868
diff
changeset
|
83 error ("pchip: length of X and Y must match"); |
12608
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
84 endif |
5837 | 85 else |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
86 szy = size (y); |
12608
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
87 if (n != szy(end)) |
15202
f3b5cadfd6d5
fix missing semicolons in various .m files
John W. Eaton <jwe@octave.org>
parents:
14868
diff
changeset
|
88 error ("pchip: length of X and last dimension of Y must match"); |
12608
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
89 endif |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
90 y = reshape (y, [prod(szy(1:end-1)), szy(end)]); |
5837 | 91 endif |
92 | |
5838 | 93 h = diff (x); |
94 if (all (h < 0)) | |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
95 x = fliplr (x); |
5838 | 96 h = diff (x); |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
97 y = fliplr (y); |
5838 | 98 elseif (any (h <= 0)) |
14552
86854d032a37
maint: miscellaneous style fixes for .m files
John W. Eaton <jwe@octave.org>
parents:
14465
diff
changeset
|
99 error ("pchip: X must be strictly monotonic"); |
5837 | 100 endif |
101 | |
12608
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
102 f1 = y(:, 1:n-1); |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
103 |
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
104 ## Compute derivatives. |
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
105 d = __pchip_deriv__ (x, y, 2); |
12608
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
106 d1 = d(:, 1:n-1); |
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
107 d2 = d(:, 2:n); |
5837 | 108 |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11536
diff
changeset
|
109 ## This is taken from SLATEC. |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
110 h = diag (h); |
5837 | 111 |
9754
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
112 delta = diff (y, 1, 2) / h; |
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
113 del1 = (d1 - delta) / h; |
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
114 del2 = (d2 - delta) / h; |
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
115 c3 = del1 + del2; |
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
116 c2 = -c3 - del1; |
4219e5cf773d
improve interp1 and pchip
Jaroslav Hajek <highegg@gmail.com>
parents:
9211
diff
changeset
|
117 c3 = c3 / h; |
9768
31900e17b5f5
improve Matlab compatibility & performance of ppval/mkpp and some associated funcs
Jaroslav Hajek <highegg@gmail.com>
parents:
9754
diff
changeset
|
118 coeffs = cat (3, c3, c2, d1, f1); |
5837 | 119 |
12608
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
120 ret = mkpp (x, coeffs, szy(1:end-1)); |
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
121 |
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
122 if (nargin == 3) |
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
123 ret = ppval (ret, xi); |
5837 | 124 endif |
125 | |
126 endfunction | |
127 | |
17346
1c89599167a6
maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents:
15202
diff
changeset
|
128 |
5837 | 129 %!demo |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11536
diff
changeset
|
130 %! x = 0:8; |
5837 | 131 %! y = [1, 1, 1, 1, 0.5, 0, 0, 0, 0]; |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11536
diff
changeset
|
132 %! xi = 0:0.01:8; |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
133 %! yspline = spline (x,y,xi); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
134 %! ypchip = pchip (x,y,xi); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
135 %! title ("pchip and spline fit to discontinuous function"); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
136 %! plot (xi,yspline, xi,ypchip,"-", x,y,"+"); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
137 %! legend ("spline", "pchip", "data"); |
5837 | 138 %! %------------------------------------------------------------------- |
139 %! % confirm that pchip agreed better to discontinuous data than spline | |
140 | |
14364
721a4a83cba6
test: Space out %!shared variable declaration for readability
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
141 %!shared x, y, y2, pp, yi1, yi2, yi3 |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11536
diff
changeset
|
142 %! x = 0:8; |
5837 | 143 %! y = [1, 1, 1, 1, 0.5, 0, 0, 0, 0]; |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
144 %!assert (pchip (x,y,x), y) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
145 %!assert (pchip (x,y,x'), y') |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
146 %!assert (pchip (x',y',x'), y') |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
147 %!assert (pchip (x',y',x), y) |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14552
diff
changeset
|
148 %!assert (isempty (pchip (x',y',[]))) |
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14552
diff
changeset
|
149 %!assert (isempty (pchip (x,y,[]))) |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
150 %!assert (pchip (x,[y;y],x), [pchip(x,y,x);pchip(x,y,x)]) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
151 %!assert (pchip (x,[y;y],x'), [pchip(x,y,x);pchip(x,y,x)]) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
152 %!assert (pchip (x',[y;y],x), [pchip(x,y,x);pchip(x,y,x)]) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
153 %!assert (pchip (x',[y;y],x'), [pchip(x,y,x);pchip(x,y,x)]) |
12608
59e2460acae1
make piecewise polynomial (pp) functions more compatible
Kai Habel <kai.habel@gmx.de>
parents:
11587
diff
changeset
|
154 %!test |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
155 %! x = (0:8)*pi/4; y = [sin(x); cos(x)]; |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
156 %! y2(:,:,1) = y; y2(:,:,2) = y+1; y2(:,:,3) = y-1; |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
157 %! pp = pchip (x, shiftdim (y2,2)); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
158 %! yi1 = ppval (pp, (1:4)*pi/4); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
159 %! yi2 = ppval (pp, repmat ((1:4)*pi/4, [5,1])); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
160 %! yi3 = ppval (pp, [pi/2,pi]); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
161 %!assert (size (pp.coefs), [48,4]) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
162 %!assert (pp.pieces, 8) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
163 %!assert (pp.order, 4) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
164 %!assert (pp.dim, [3,2]) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
165 %!assert (ppval (pp,pi), [0,-1;1,0;-1,-2], 1e-14) |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
166 %!assert (yi3(:,:,2), ppval (pp,pi), 1e-14) |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
167 %!assert (yi3(:,:,1), [1,0;2,1;0,-1], 1e-14) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
168 %!assert (squeeze (yi1(1,2,:)), [1/sqrt(2); 0; -1/sqrt(2);-1], 1e-14) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
169 %!assert (size (yi2), [3,2,5,4]) |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
170 %!assert (squeeze (yi2(1,2,3,:)), [1/sqrt(2); 0; -1/sqrt(2);-1], 1e-14) |
14462
af552038cc52
Fix segfault in pchip when input array is too small (bug #35835).
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
14138
diff
changeset
|
171 |
af552038cc52
Fix segfault in pchip when input array is too small (bug #35835).
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
14138
diff
changeset
|
172 %!error (pchip (1,2)); |
af552038cc52
Fix segfault in pchip when input array is too small (bug #35835).
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
14138
diff
changeset
|
173 %!error (pchip (1,2,3)); |
17346
1c89599167a6
maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents:
15202
diff
changeset
|
174 |