diff src/ov.cc @ 8982:dc6bda6f9994

implement compound logical ops
author Jaroslav Hajek <highegg@gmail.com>
date Sat, 14 Mar 2009 23:08:08 +0100
parents 93f18f166aba
children d12f44a5dce3
line wrap: on
line diff
--- a/src/ov.cc	Sat Mar 14 19:42:50 2009 +0100
+++ b/src/ov.cc	Sat Mar 14 23:08:08 2009 +0100
@@ -377,6 +377,22 @@
       retval = "timesherm";
       break;
 
+    case op_el_and_not:
+      retval = "andnot";
+      break;
+
+    case op_el_or_not:
+      retval = "ornot";
+      break;
+
+    case op_el_not_and:
+      retval = "notand";
+      break;
+
+    case op_el_not_or:
+      retval = "notor";
+      break;
+
     default:
       break;
     }
@@ -1903,6 +1919,26 @@
                              v1,
                              do_unary_op (octave_value::op_hermitian, v2));
       break;
+    case octave_value::op_el_not_and:
+      retval = do_binary_op (octave_value::op_el_and,
+                             do_unary_op (octave_value::op_not, v1),
+                             v2);
+      break;
+    case octave_value::op_el_not_or:
+      retval = do_binary_op (octave_value::op_el_or,
+                             do_unary_op (octave_value::op_not, v1),
+                             v2);
+      break;
+    case octave_value::op_el_and_not:
+      retval = do_binary_op (octave_value::op_el_and,
+                             v1,
+                             do_unary_op (octave_value::op_not, v2));
+      break;
+    case octave_value::op_el_or_not:
+      retval = do_binary_op (octave_value::op_el_or,
+                             v1,
+                             do_unary_op (octave_value::op_not, v2));
+      break;
     default:
       error ("invalid compound operator");
       break;