# HG changeset patch # User Arun Giridhar # Date 1663402958 14400 # Node ID 6646f2b5a3d11f8cdbf3a96f8dad9e2c0d182e2a # Parent c967e74cc0534db4a55602538264ea06f788f16a lcm.m: Emit warnings when results not exact (Bug #32924) diff -r c967e74cc053 -r 6646f2b5a3d1 scripts/specfun/lcm.m --- a/scripts/specfun/lcm.m Thu Sep 15 16:59:09 2022 -0700 +++ b/scripts/specfun/lcm.m Sat Sep 17 04:22:38 2022 -0400 @@ -53,6 +53,14 @@ l(msk) = 0; endfor + if (isfloat (l) && l > flintmax (l)) + warning ("Octave:lcm:large-output-float", ... + "lcm: possible loss of precision"); + elseif (isinteger (l) && l == intmax (l)) + warning ("Octave:lcm:large-output-integer", ... + "lcm: result may have saturated at intmax"); + endif + endfunction @@ -63,3 +71,13 @@ %!error lcm (1) %!error lcm ([1 2], [1 2 3]) %!error lcm ([1 2], {1 2}) +%!warning lcm (num2cell (double (1:47)){:}); +%!warning lcm (num2cell (single (1:47)){:}); +%!warning lcm (num2cell (uint64 (1:47)){:}); +%!warning lcm (num2cell (uint32 (1:47)){:}); +%!warning lcm (num2cell (uint16 (1:47)){:}); +%!warning lcm (num2cell ( uint8 (1:47)){:}); +%!warning lcm (num2cell ( int64 (1:47)){:}); +%!warning lcm (num2cell ( int32 (1:47)){:}); +%!warning lcm (num2cell ( int16 (1:47)){:}); +%!warning lcm (num2cell ( int8 (1:47)){:});