# HG changeset patch # User John W. Eaton # Date 1304531974 14400 # Node ID d3ccd2e37de62b7239e65ec44b9bd3196c5c5a0b # Parent f96b9b9f141b3d2e472f1bd26ae0c89536574e7e Allow scalar integer to logical conversion (bug #33219) * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::bool_value): New funtion. * ov-bool-mat.cc: New tests. diff -r f96b9b9f141b -r d3ccd2e37de6 src/ov-bool-mat.cc --- a/src/ov-bool-mat.cc Sun May 01 11:39:50 2011 -0700 +++ b/src/ov-bool-mat.cc Wed May 04 13:59:34 2011 -0400 @@ -575,3 +575,15 @@ return retval; } + +/* +%!shared m, s, c +%! m = eye (2) != 0; +%! s = !0; +%! c = {"double", "single", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "logical"}; +%!test +%! for i = 1:numel (c) +%! assert (logical (eye (2, c{i})), m) +%! assert (logical (eye (1, c{i})), s) +%! endfor +*/ diff -r f96b9b9f141b -r d3ccd2e37de6 src/ov-intx.h --- a/src/ov-intx.h Sun May 01 11:39:50 2011 -0700 +++ b/src/ov-intx.h Wed May 04 13:59:34 2011 -0400 @@ -564,6 +564,14 @@ return retval; } + bool bool_value (bool warn = false) const + { + if (warn && scalar != 0.0 && scalar != 1.0) + gripe_logical_conversion (); + + return scalar.bool_value (); + } + boolNDArray bool_array_value (bool warn = false) const {