diff src/OPERATORS/op-fcm-fcs.cc @ 9546:1beb23d2b892

optimize op= in common cases
author Jaroslav Hajek <highegg@gmail.com>
date Wed, 19 Aug 2009 13:47:59 +0200
parents eb63fbe60fab
children 319e2ab9b8ae
line wrap: on
line diff
--- a/src/OPERATORS/op-fcm-fcs.cc	Mon Aug 17 14:46:18 2009 +0200
+++ b/src/OPERATORS/op-fcm-fcs.cc	Wed Aug 19 13:47:59 2009 +0200
@@ -134,6 +134,15 @@
 DEFNDASSIGNOP_FN (dbl_assign, complex_matrix, float_complex, 
 		  complex, assign)
 
+DEFNDASSIGNOP_OP (assign_add, float_complex_matrix, float_complex_scalar,
+                  float_complex, +=)
+DEFNDASSIGNOP_OP (assign_sub, float_complex_matrix, float_complex_scalar,
+                  float_complex, -=)
+DEFNDASSIGNOP_OP (assign_mul, float_complex_matrix, float_complex_scalar,
+                  float_complex, *=)
+DEFNDASSIGNOP_OP (assign_div, float_complex_matrix, float_complex_scalar,
+                  float_complex, /=)
+
 void
 install_fcm_fcs_ops (void)
 {
@@ -176,6 +185,15 @@
 		    octave_float_complex, assign);
   INSTALL_ASSIGNOP (op_asn_eq, octave_complex_matrix, 
 		    octave_float_complex, dbl_assign);
+
+  INSTALL_ASSIGNOP (op_add_eq, octave_float_complex_matrix,
+                    octave_float_complex_scalar, assign_add);
+  INSTALL_ASSIGNOP (op_sub_eq, octave_float_complex_matrix,
+                    octave_float_complex_scalar, assign_sub);
+  INSTALL_ASSIGNOP (op_mul_eq, octave_float_complex_matrix,
+                    octave_float_complex_scalar, assign_mul);
+  INSTALL_ASSIGNOP (op_div_eq, octave_float_complex_matrix,
+                    octave_float_complex_scalar, assign_div);
 }
 
 /*