Mercurial > hg > octave-nkf
changeset 19310:9c5a17d5fc19
Deprecate fmod function.
* NEWS: Announce deprecation.
* scripts/deprecated/fmod.m: New m-file to replace C++ function and issue
deprecated warning.
* scripts/deprecated/module.mk: Add fmod.m to build system.
* data.cc: Remove DEFALIAS of fmod to rem. Replace fmod with rem in %!tests.
* datetick.m: Replace fmod usage with rem.
author | Rik <rik@octave.org> |
---|---|
date | Sat, 20 Sep 2014 20:31:16 -0700 |
parents | a4c226a963c5 |
children | f506de9089e8 |
files | NEWS libinterp/corefcn/data.cc scripts/deprecated/fmod.m scripts/deprecated/module.mk scripts/plot/appearance/datetick.m |
diffstat | 5 files changed, 60 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS +++ b/NEWS @@ -95,6 +95,7 @@ bicubic | interp2 find_dir_in_path | dir_in_loadpath finite | isfinite + fmod | rem nfields | numfields syl | sylvester usage | print_usage
--- a/libinterp/corefcn/data.cc +++ b/libinterp/corefcn/data.cc @@ -576,8 +576,7 @@ DEFUN (rem, args, , "-*- texinfo -*-\n\ -@deftypefn {Mapping Function} {} rem (@var{x}, @var{y})\n\ -@deftypefnx {Mapping Function} {} fmod (@var{x}, @var{y})\n\ +@deftypefn {Mapping Function} {} rem (@var{x}, @var{y})\n\ Return the remainder of the division @code{@var{x} / @var{y}}, computed\n\ using the expression\n\ \n\ @@ -677,11 +676,11 @@ } /* -%!assert (size (fmod (zeros (0, 2), zeros (0, 2))), [0, 2]) -%!assert (size (fmod (rand (2, 3, 4), zeros (2, 3, 4))), [2, 3, 4]) -%!assert (size (fmod (rand (2, 3, 4), 1)), [2, 3, 4]) -%!assert (size (fmod (1, rand (2, 3, 4))), [2, 3, 4]) -%!assert (size (fmod (1, 2)), [1, 1]) +%!assert (size (rem (zeros (0, 2), zeros (0, 2))), [0, 2]) +%!assert (size (rem (rand (2, 3, 4), zeros (2, 3, 4))), [2, 3, 4]) +%!assert (size (rem (rand (2, 3, 4), 1)), [2, 3, 4]) +%!assert (size (rem (1, rand (2, 3, 4))), [2, 3, 4]) +%!assert (size (rem (1, 2)), [1, 1]) %!assert (rem ([1, 2, 3; -1, -2, -3], 2), [1, 0, 1; -1, 0, -1]) %!assert (rem ([1, 2, 3; -1, -2, -3], 2 * ones (2, 3)),[1, 0, 1; -1, 0, -1]) @@ -727,8 +726,6 @@ %!assert (rem (0.94, 0.01), 0.0); */ -DEFALIAS (fmod, rem) - DEFUN (mod, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} mod (@var{x}, @var{y})\n\
new file mode 100644 --- /dev/null +++ b/scripts/deprecated/fmod.m @@ -0,0 +1,51 @@ +## Copyright (C) 2014 John W. Eaton +## +## 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 +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Mapping Function} {} fmod (@var{x}, @var{y}) +## +## @code{fmod} is deprecated and will be removed in Octave version 4.6. +## Please use @code{rem} in all new code. +## +## Return the remainder of the division @code{@var{x} / @var{y}}, computed +## using the expression +## +## @example +## x - y .* fix (x ./ y) +## @end example +## +## An error message is printed if the dimensions of the arguments do not +## agree, or if either of the arguments is complex. +## @seealso{rem, mod} +## @end deftypefn + +## Deprecated in version 4.2 + +function retval = fmod (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "fmod is obsolete and will be removed from a future version of Octave, please use rem instead"); + endif + + retval = rem (varargin{:}); + +endfunction +