diff src/ov-cx-sparse.cc @ 9853:8d9e4752441a

implement complex built-in logical conversions
author Jaroslav Hajek <highegg@gmail.com>
date Mon, 23 Nov 2009 10:48:31 +0100
parents 8fa32b527d9a
children b3089dba88bf
line wrap: on
line diff
--- a/src/ov-cx-sparse.cc	Mon Nov 23 10:00:29 2009 +0100
+++ b/src/ov-cx-sparse.cc	Mon Nov 23 10:48:31 2009 +0100
@@ -230,6 +230,18 @@
   return retval;
 }
 
+SparseBoolMatrix 
+octave_sparse_complex_matrix::sparse_bool_matrix_value (bool warn) const
+{
+  if (matrix.any_element_is_nan ())
+    error ("invalid conversion from NaN to logical");
+  else if (warn && (! matrix.all_elements_are_real () 
+                    || real (matrix).any_element_not_one_or_zero ()))
+    gripe_logical_conversion ();
+
+  return mx_el_ne (matrix, Complex (0.0));
+}
+
 bool 
 octave_sparse_complex_matrix::save_binary (std::ostream& os, 
 					   bool&save_as_floats)