# HG changeset patch # User Rik # Date 1382161206 25200 # Node ID 1efe4c65c5cffad730dcbba76ad945e758f9b479 # Parent efbe746f8fa89a6870f6b24ba89b918addd34c6d Deprecate interp1q.m. * scripts/deprecated/interp1q.m: Moved from scripts/general. * scripts/deprecated/module.mk, scripts/general/module.mk: Update build system * NEWS: Announce deprecation. * doc/interpreter/interp.txi: Remove interp1q from manual. diff -r efbe746f8fa8 -r 1efe4c65c5cf NEWS --- a/NEWS Fri Oct 18 21:00:33 2013 -0400 +++ b/NEWS Fri Oct 18 22:40:06 2013 -0700 @@ -322,14 +322,15 @@ be removed from Octave 3.12 (or whatever version is the second major release after 3.8): - default_save_options java_set - gen_doc_cache java_unsigned_conversion + default_save_options java_new + gen_doc_cache java_set + interp1q java_unsigned_conversion isequalwithequalnans javafields java_convert_matrix javamethods java_debug re_read_readline_init_file java_get read_readline_init_file java_invoke saving_history - java_new + The following keywords have been deprecated in Octave 3.8 and will be removed from Octave 3.12 (or whatever version is the second major diff -r efbe746f8fa8 -r 1efe4c65c5cf doc/interpreter/interp.txi --- a/doc/interpreter/interp.txi Fri Oct 18 21:00:33 2013 -0400 +++ b/doc/interpreter/interp.txi Fri Oct 18 22:40:06 2013 -0700 @@ -82,12 +82,6 @@ @end float @end ifnotinfo -A simplified version of @code{interp1} that performs only linear -interpolation is available in @code{interp1q}. This argument is slightly -faster than @code{interp1} as to performs little error checking. - -@DOCSTRING(interp1q) - Fourier interpolation, is a resampling technique where a signal is converted to the frequency domain, padded with zeros and then reconverted to the time domain. diff -r efbe746f8fa8 -r 1efe4c65c5cf scripts/deprecated/interp1q.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/deprecated/interp1q.m Fri Oct 18 22:40:06 2013 -0700 @@ -0,0 +1,81 @@ +## Copyright (C) 2008-2012 David Bateman +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {@var{yi} =} interp1q (@var{x}, @var{y}, @var{xi}) +## One-dimensional linear interpolation without error checking. +## Interpolates @var{y}, defined at the points @var{x}, at the points +## @var{xi}. The sample points @var{x} must be a strictly monotonically +## increasing column vector. If @var{y} is a matrix or an N-dimensional +## array, the interpolation is performed on each column of @var{y}. If +## @var{y} is a vector, it must be a column vector of the same length as +## @var{x}. +## +## Values of @var{xi} beyond the endpoints of the interpolation result +## in NA being returned. +## +## Note that the error checking is only a significant portion of the +## execution time of this @code{interp1} if the size of the input arguments +## is relatively small. Therefore, the benefit of using @code{interp1q} +## is relatively small. +## @seealso{interp1} +## @end deftypefn + +function yi = interp1q (x, y, xi) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "interp1q is obsolete and will be removed from a future version of Octave; use interp1 instead"); + endif + + x = x(:); + nx = rows (x); + szy = size (y); + y = y(:,:); + [ny, nc] = size (y); + szx = size (xi); + xi = xi (:); + dy = diff (y); + dx = diff (x); + idx = lookup (x, xi, "lr"); + s = (xi - x (idx)) ./ dx (idx); + yi = bsxfun (@times, s, dy(idx,:)) + y(idx,:); + range = xi < x(1) | !(xi <= x(nx)); + yi(range,:) = NA; + if (length (szx) == 2 && any (szx == 1)) + yi = reshape (yi, [max(szx), szy(2:end)]); + else + yi = reshape (yi, [szx, szy(2:end)]); + endif +endfunction + + +%!shared xp, yp, xi, yi +%! xp = [0:2:10].'; yp = sin (2*pi*xp/5); +%! xi = [-1; 0; 2.2; 4; 6.6; 10; 11]; +%! yi = interp1 (xp,yp,xi); +%!assert (interp1q (xp,yp, [min(xp)-1; max(xp)+1]), [NA; NA]); +%!assert (interp1q (xp,yp,xp), yp, 100*eps); +%!assert (isempty (interp1q (xp,yp,[]))); +%!assert (interp1q (xp,yp,xi), yi); +%!assert (interp1q (xp,[yp,yp],xi), [yi, yi]); +%!assert (interp1q (xp,yp,[xi,xi]), [yi, yi]); +%!assert (interp1q (xp,[yp,yp],[xi,xi]), cat (3, [yi, yi], [yi, yi])); + diff -r efbe746f8fa8 -r 1efe4c65c5cf scripts/deprecated/module.mk --- a/scripts/deprecated/module.mk Fri Oct 18 21:00:33 2013 -0400 +++ b/scripts/deprecated/module.mk Fri Oct 18 22:40:06 2013 -0700 @@ -6,12 +6,13 @@ deprecated/corrcoef.m \ deprecated/cut.m \ deprecated/default_save_options.m \ - deprecated/java_debug.m \ deprecated/error_text.m \ deprecated/gen_doc_cache.m \ + deprecated/interp1q.m \ deprecated/isequalwithequalnans.m \ deprecated/isstr.m \ deprecated/java_convert_matrix.m \ + deprecated/java_debug.m \ deprecated/java_get.m \ deprecated/java_invoke.m \ deprecated/java_new.m \ diff -r efbe746f8fa8 -r 1efe4c65c5cf scripts/general/interp1q.m --- a/scripts/general/interp1q.m Fri Oct 18 21:00:33 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -## Copyright (C) 2008-2012 David Bateman -## -## This file is part of Octave. -## -## Octave is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or (at -## your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## . - -## -*- texinfo -*- -## @deftypefn {Function File} {@var{yi} =} interp1q (@var{x}, @var{y}, @var{xi}) -## One-dimensional linear interpolation without error checking. -## Interpolates @var{y}, defined at the points @var{x}, at the points -## @var{xi}. The sample points @var{x} must be a strictly monotonically -## increasing column vector. If @var{y} is a matrix or an N-dimensional -## array, the interpolation is performed on each column of @var{y}. If -## @var{y} is a vector, it must be a column vector of the same length as -## @var{x}. -## -## Values of @var{xi} beyond the endpoints of the interpolation result -## in NA being returned. -## -## Note that the error checking is only a significant portion of the -## execution time of this @code{interp1} if the size of the input arguments -## is relatively small. Therefore, the benefit of using @code{interp1q} -## is relatively small. -## @seealso{interp1} -## @end deftypefn - -function yi = interp1q (x, y, xi) - x = x(:); - nx = rows (x); - szy = size (y); - y = y(:,:); - [ny, nc] = size (y); - szx = size (xi); - xi = xi (:); - dy = diff (y); - dx = diff (x); - idx = lookup (x, xi, "lr"); - s = (xi - x (idx)) ./ dx (idx); - yi = bsxfun (@times, s, dy(idx,:)) + y(idx,:); - range = xi < x(1) | !(xi <= x(nx)); - yi(range,:) = NA; - if (length (szx) == 2 && any (szx == 1)) - yi = reshape (yi, [max(szx), szy(2:end)]); - else - yi = reshape (yi, [szx, szy(2:end)]); - endif -endfunction - - -%!shared xp, yp, xi, yi -%! xp = [0:2:10].'; yp = sin (2*pi*xp/5); -%! xi = [-1; 0; 2.2; 4; 6.6; 10; 11]; -%! yi = interp1 (xp,yp,xi); -%!assert (interp1q (xp,yp, [min(xp)-1; max(xp)+1]), [NA; NA]); -%!assert (interp1q (xp,yp,xp), yp, 100*eps); -%!assert (isempty (interp1q (xp,yp,[]))); -%!assert (interp1q (xp,yp,xi), yi); -%!assert (interp1q (xp,[yp,yp],xi), [yi, yi]); -%!assert (interp1q (xp,yp,[xi,xi]), [yi, yi]); -%!assert (interp1q (xp,[yp,yp],[xi,xi]), cat (3, [yi, yi], [yi, yi])); - diff -r efbe746f8fa8 -r 1efe4c65c5cf scripts/general/module.mk --- a/scripts/general/module.mk Fri Oct 18 21:00:33 2013 -0400 +++ b/scripts/general/module.mk Fri Oct 18 22:40:06 2013 -0700 @@ -37,7 +37,6 @@ general/idivide.m \ general/int2str.m \ general/interp1.m \ - general/interp1q.m \ general/interp2.m \ general/interp3.m \ general/interpn.m \