# HG changeset patch # User Rik # Date 1455667316 28800 # Node ID 85d8280c64f4331e2e8880e5a255d96293bb016a # Parent bc536eff5eab63488caf0476f9fa1a9f8e3aa093 Return NaN for norm (..., +/-Inf) if input contains NaN (bug #32855). * oct-norm.cc (norm_accumulator_inf::accum, norm_accumulator_minf::accum): Use xisnan to check for NaN value before continuing to accumulate. diff -r bc536eff5eab -r 85d8280c64f4 liboctave/numeric/oct-norm.cc --- a/liboctave/numeric/oct-norm.cc Tue Feb 16 14:47:35 2016 -0500 +++ b/liboctave/numeric/oct-norm.cc Tue Feb 16 16:01:56 2016 -0800 @@ -179,7 +179,10 @@ template void accum (U val) { - max = std::max (max, std::abs (val)); + if (xisnan (val)) + max = octave_NaN; + else + max = std::max (max, std::abs (val)); } operator R () { return max; } }; @@ -194,7 +197,10 @@ template void accum (U val) { - min = std::min (min, std::abs (val)); + if (xisnan (val)) + min = octave_NaN; + else + min = std::min (min, std::abs (val)); } operator R () { return min; } };