changeset 12645:d3ccd2e37de6 stable

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.
author John W. Eaton <jwe@octave.org>
date Wed, 04 May 2011 13:59:34 -0400
parents f96b9b9f141b
children eaba9d671fb7
files src/ov-bool-mat.cc src/ov-intx.h
diffstat 2 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ov-bool-mat.cc
+++ b/src/ov-bool-mat.cc
@@ -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
+*/
--- a/src/ov-intx.h
+++ b/src/ov-intx.h
@@ -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
   {