diff liboctave/MArray.cc @ 13139:aa4a23337a0f

Enable BSX in-place for missing assignment operators * bsxfun-defs.cc (do_inplace_bsxfun_op): New function. * bsxfun.h (is_valid_bsxfun): Fix logic, had bug with empty dimensions. (is_valid_inplace_bsxfun): New function. * mx-inlines.cc (DEFMXBOOLOPEQ): Add missing function for vector-by-scalar operation. (do_mm_inplace_op): Call new inplace_bsxfun functions. * MArray.cc (MArray::operator+, MArray::operator-, MArray::product_eq, MArray::quotient_eq): Change calling form for do_mm_in_place_op. * boolNDArray.cc (boolNDArray::mx_el_and_assign, boolNDArray::mx_el_or_assign): Ditto
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Thu, 15 Sep 2011 05:11:46 -0500
parents d9d65c3017c3
children 72c96de7a403
line wrap: on
line diff
--- a/liboctave/MArray.cc	Wed Sep 14 19:59:24 2011 -0400
+++ b/liboctave/MArray.cc	Thu Sep 15 05:11:46 2011 -0500
@@ -264,7 +264,7 @@
   if (a.is_shared ())
     a = a + b;
   else
-    do_mm_inplace_op<T, T> (a, b, mx_inline_add2, "+=");
+    do_mm_inplace_op<T, T> (a, b, mx_inline_add2, mx_inline_add2, "+=");
   return a;
 }
 
@@ -275,7 +275,7 @@
   if (a.is_shared ())
     a = a - b;
   else
-    do_mm_inplace_op<T, T> (a, b, mx_inline_sub2, "-=");
+    do_mm_inplace_op<T, T> (a, b, mx_inline_sub2, mx_inline_sub2, "-=");
   return a;
 }
 
@@ -287,7 +287,7 @@
   if (a.is_shared ())
     return a = product (a, b);
   else
-    do_mm_inplace_op<T, T> (a, b, mx_inline_mul2, ".*=");
+    do_mm_inplace_op<T, T> (a, b, mx_inline_mul2, mx_inline_mul2, ".*=");
   return a;
 }
 
@@ -298,7 +298,7 @@
   if (a.is_shared ())
     return a = quotient (a, b);
   else
-    do_mm_inplace_op<T, T> (a, b, mx_inline_div2, "./=");
+    do_mm_inplace_op<T, T> (a, b, mx_inline_div2, mx_inline_div2, "./=");
   return a;
 }