comparison src/pr-output.cc @ 12084:bd994ce20158 release-3-2-x

pr-output.cc (set_format (const Complex&, int&, int&)): avoid passing NaN or Inf to log10
author John W. Eaton <jwe@octave.org>
date Fri, 04 Sep 2009 06:59:44 +0200
parents ee264f77eaed
children 330cf1e13fb6
comparison
equal deleted inserted replaced
12083:2dbd6188b789 12084:bd994ce20158
850 bool int_only = (D_NINT (rp) == rp && D_NINT (ip) == ip); 850 bool int_only = (D_NINT (rp) == rp && D_NINT (ip) == ip);
851 851
852 double r_abs = rp < 0.0 ? -rp : rp; 852 double r_abs = rp < 0.0 ? -rp : rp;
853 double i_abs = ip < 0.0 ? -ip : ip; 853 double i_abs = ip < 0.0 ? -ip : ip;
854 854
855 int r_x = r_abs == 0.0 855 int r_x = (xisinf (rp) || xisnan (rp) || xr_abs == 0.0)
856 ? 0 : static_cast<int> (floor (log10 (r_abs) + 1.0)); 856 ? 0 : static_cast<int> (floor (log10 (r_abs) + 1.0));
857 857
858 int i_x = i_abs == 0.0 858 int i_x = (xisinf (ip) || xisnan (ip) || i_abs == 0.0)
859 ? 0 : static_cast<int> (floor (log10 (i_abs) + 1.0)); 859 ? 0 : static_cast<int> (floor (log10 (i_abs) + 1.0));
860 860
861 int x_max, x_min; 861 int x_max, x_min;
862 862
863 if (r_x > i_x) 863 if (r_x > i_x)