Mercurial > hg > octave-lyh
comparison src/OPERATORS/op-m-m.cc @ 7800:5861b95e9879
support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Wed, 07 May 2008 16:33:15 +0200 |
parents | 82be108cc558 |
children | 283989f2da9b |
comparison
equal
deleted
inserted
replaced
7799:199181592240 | 7800:5861b95e9879 |
---|---|
90 | 90 |
91 v1.matrix_type (typ); | 91 v1.matrix_type (typ); |
92 return ret; | 92 return ret; |
93 } | 93 } |
94 | 94 |
95 DEFBINOP (trans_mul, matrix, matrix) | |
96 { | |
97 CAST_BINOP_ARGS (const octave_matrix&, const octave_matrix&); | |
98 return octave_value(xgemm (true, v1.matrix_value (), false, v2.matrix_value ())); | |
99 } | |
100 | |
101 DEFBINOP (mul_trans, matrix, matrix) | |
102 { | |
103 CAST_BINOP_ARGS (const octave_matrix&, const octave_matrix&); | |
104 return octave_value(xgemm (false, v1.matrix_value (), true, v2.matrix_value ())); | |
105 } | |
106 | |
95 DEFNDBINOP_FN (lt, matrix, matrix, array, array, mx_el_lt) | 107 DEFNDBINOP_FN (lt, matrix, matrix, array, array, mx_el_lt) |
96 DEFNDBINOP_FN (le, matrix, matrix, array, array, mx_el_le) | 108 DEFNDBINOP_FN (le, matrix, matrix, array, array, mx_el_le) |
97 DEFNDBINOP_FN (eq, matrix, matrix, array, array, mx_el_eq) | 109 DEFNDBINOP_FN (eq, matrix, matrix, array, array, mx_el_eq) |
98 DEFNDBINOP_FN (ge, matrix, matrix, array, array, mx_el_ge) | 110 DEFNDBINOP_FN (ge, matrix, matrix, array, array, mx_el_ge) |
99 DEFNDBINOP_FN (gt, matrix, matrix, array, array, mx_el_gt) | 111 DEFNDBINOP_FN (gt, matrix, matrix, array, array, mx_el_gt) |
153 INSTALL_BINOP (op_el_div, octave_matrix, octave_matrix, el_div); | 165 INSTALL_BINOP (op_el_div, octave_matrix, octave_matrix, el_div); |
154 INSTALL_BINOP (op_el_pow, octave_matrix, octave_matrix, el_pow); | 166 INSTALL_BINOP (op_el_pow, octave_matrix, octave_matrix, el_pow); |
155 INSTALL_BINOP (op_el_ldiv, octave_matrix, octave_matrix, el_ldiv); | 167 INSTALL_BINOP (op_el_ldiv, octave_matrix, octave_matrix, el_ldiv); |
156 INSTALL_BINOP (op_el_and, octave_matrix, octave_matrix, el_and); | 168 INSTALL_BINOP (op_el_and, octave_matrix, octave_matrix, el_and); |
157 INSTALL_BINOP (op_el_or, octave_matrix, octave_matrix, el_or); | 169 INSTALL_BINOP (op_el_or, octave_matrix, octave_matrix, el_or); |
170 INSTALL_BINOP (op_trans_mul, octave_matrix, octave_matrix, trans_mul); | |
171 INSTALL_BINOP (op_mul_trans, octave_matrix, octave_matrix, mul_trans); | |
172 INSTALL_BINOP (op_herm_mul, octave_matrix, octave_matrix, trans_mul); | |
173 INSTALL_BINOP (op_mul_herm, octave_matrix, octave_matrix, mul_trans); | |
158 | 174 |
159 INSTALL_CATOP (octave_matrix, octave_matrix, m_m); | 175 INSTALL_CATOP (octave_matrix, octave_matrix, m_m); |
160 | 176 |
161 INSTALL_ASSIGNOP (op_asn_eq, octave_matrix, octave_matrix, assign); | 177 INSTALL_ASSIGNOP (op_asn_eq, octave_matrix, octave_matrix, assign); |
162 INSTALL_ASSIGNOP (op_asn_eq, octave_float_matrix, octave_matrix, sgl_assign); | 178 INSTALL_ASSIGNOP (op_asn_eq, octave_float_matrix, octave_matrix, sgl_assign); |