Mercurial > hg > octave-lyh
diff scripts/general/logical.m @ 7922:935be827eaf8
error for NaN values in & and | expressions
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 11 Jul 2008 14:56:30 -0400 |
parents | b5731e43283a |
children | eb63fbe60fab |
line wrap: on
line diff
--- a/scripts/general/logical.m +++ b/scripts/general/logical.m @@ -42,7 +42,11 @@ elseif (isempty (x)) y = zeros (size (x), "logical"); elseif (isnumeric (x)) - y = x != 0; + if (any (isnan (x(:)))) + error ("invalid conversion from NaN to logical"); + else + y = x != 0; + endif else error ("logical not defined for type `%s'", typeinfo (x)); endif @@ -59,4 +63,6 @@ %!assert (logical (-13), true); %!assert (logical (int8 (13)), true); %!assert (logical (int8 (-13)), true); -%!assert (logical ([-1, 0, 1, NaN, Inf]), [-1, 0, 1, NaN, Inf] != 0); +%!assert (logical ([-1, 0, 1, Inf]), [-1, 0, 1, Inf] != 0); +%!error (logical ([-1, 0, 1, NaN, Inf])) +%!error (logical (NaN))