Mercurial > octave
diff src/OPERATORS/op-m-s.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 | ac4b97c6bf8b |
line wrap: on
line diff
--- a/src/OPERATORS/op-m-s.cc Mon Aug 17 14:46:18 2009 +0200 +++ b/src/OPERATORS/op-m-s.cc Wed Aug 19 13:47:59 2009 +0200 @@ -108,6 +108,11 @@ DEFNDASSIGNOP_FN (assign, matrix, scalar, scalar, assign) DEFNDASSIGNOP_FN (sgl_assign, float_matrix, scalar, float_scalar, assign) +DEFNDASSIGNOP_OP (assign_add, matrix, scalar, scalar, +=) +DEFNDASSIGNOP_OP (assign_sub, matrix, scalar, scalar, -=) +DEFNDASSIGNOP_OP (assign_mul, matrix, scalar, scalar, *=) +DEFNDASSIGNOP_OP (assign_div, matrix, scalar, scalar, /=) + void install_m_s_ops (void) { @@ -140,6 +145,11 @@ INSTALL_ASSIGNOP (op_asn_eq, octave_matrix, octave_scalar, assign); INSTALL_ASSIGNOP (op_asn_eq, octave_float_matrix, octave_scalar, sgl_assign); + + INSTALL_ASSIGNOP (op_add_eq, octave_matrix, octave_scalar, assign_add); + INSTALL_ASSIGNOP (op_sub_eq, octave_matrix, octave_scalar, assign_sub); + INSTALL_ASSIGNOP (op_mul_eq, octave_matrix, octave_scalar, assign_mul); + INSTALL_ASSIGNOP (op_div_eq, octave_matrix, octave_scalar, assign_div); } /*