# HG changeset patch # User Rik # Date 1411270276 25200 # Node ID 9c5a17d5fc19723d387dfc9947f688eb9b9c5e26 # Parent a4c226a963c5c490e90512ae743dffb419ceb42b 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. diff -r a4c226a963c5 -r 9c5a17d5fc19 NEWS --- a/NEWS Sat Sep 20 20:20:41 2014 -0700 +++ b/NEWS Sat Sep 20 20:31:16 2014 -0700 @@ -95,6 +95,7 @@ bicubic | interp2 find_dir_in_path | dir_in_loadpath finite | isfinite + fmod | rem nfields | numfields syl | sylvester usage | print_usage diff -r a4c226a963c5 -r 9c5a17d5fc19 libinterp/corefcn/data.cc --- a/libinterp/corefcn/data.cc Sat Sep 20 20:20:41 2014 -0700 +++ b/libinterp/corefcn/data.cc Sat Sep 20 20:31:16 2014 -0700 @@ -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\ diff -r a4c226a963c5 -r 9c5a17d5fc19 scripts/deprecated/fmod.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/deprecated/fmod.m Sat Sep 20 20:31:16 2014 -0700 @@ -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 +## . + +## -*- 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 + diff -r a4c226a963c5 -r 9c5a17d5fc19 scripts/deprecated/module.mk --- a/scripts/deprecated/module.mk Sat Sep 20 20:20:41 2014 -0700 +++ b/scripts/deprecated/module.mk Sat Sep 20 20:31:16 2014 -0700 @@ -4,6 +4,7 @@ deprecated/bicubic.m \ deprecated/find_dir_in_path.m \ deprecated/finite.m \ + deprecated/fmod.m \ deprecated/isstr.m \ deprecated/nfields.m \ deprecated/strmatch.m \ diff -r a4c226a963c5 -r 9c5a17d5fc19 scripts/plot/appearance/datetick.m --- a/scripts/plot/appearance/datetick.m Sat Sep 20 20:20:41 2014 -0700 +++ b/scripts/plot/appearance/datetick.m Sat Sep 20 20:31:16 2014 -0700 @@ -271,7 +271,7 @@ b = 0; else l = log10 (abs (x)); - r = fmod (l, 1); + r = rem (l, 1); a = 10 .^ r; b = fix (l - r); if (a < 1)