changeset 31981:61bf59bcde72

Improve display of mixed complex scalar values with NaN and an integer. * pr-output.cc (make_complex_scalar_format): Change "int_only" variable to include NaN as an "integer" for display purposes (NaN has no trailing decimals so this makes sense).
author Rik <rik@octave.org>
date Fri, 07 Apr 2023 13:37:16 -0700
parents b6ba853c70d6
children ff1fed5bf218
files libinterp/corefcn/pr-output.cc
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/pr-output.cc	Fri Apr 07 13:26:33 2023 -0700
+++ b/libinterp/corefcn/pr-output.cc	Fri Apr 07 13:37:16 2023 -0700
@@ -896,10 +896,12 @@
   T rp = c.real ();
   T ip = c.imag ();
 
-  bool inf_or_nan = (octave::math::isinf (c) || octave::math::isnan (c));
-
-  bool int_only = (octave::math::x_nint (rp) == rp
-                   && octave::math::x_nint (ip) == ip);
+  bool r_inf_or_nan = (octave::math::isinf (rp) || octave::math::isnan (rp));
+  bool i_inf_or_nan = (octave::math::isinf (ip) || octave::math::isnan (ip));
+  bool inf_or_nan = r_inf_or_nan || i_inf_or_nan;
+
+  bool int_only = ((r_inf_or_nan || octave::math::x_nint (rp) == rp)
+                   && (i_inf_or_nan || octave::math::x_nint (ip) == ip));
 
   T r_abs = (rp < 0 ? -rp : rp);
   T i_abs = (ip < 0 ? -ip : ip);