comparison src/OPERATORS/op-fm-fcm.cc @ 9663:7e5b4de5fbfe

improve mixed real x complex ops
author Jaroslav Hajek <highegg@gmail.com>
date Wed, 23 Sep 2009 12:13:50 +0200
parents 0d3b248f4ab6
children 1dba57e9d08d
comparison
equal deleted inserted replaced
9662:0d3b248f4ab6 9663:7e5b4de5fbfe
48 float_complex_array, +) 48 float_complex_array, +)
49 DEFNDBINOP_OP (sub, float_matrix, float_complex_matrix, float_array, 49 DEFNDBINOP_OP (sub, float_matrix, float_complex_matrix, float_array,
50 float_complex_array, -) 50 float_complex_array, -)
51 51
52 DEFBINOP_OP (mul, float_matrix, float_complex_matrix, *) 52 DEFBINOP_OP (mul, float_matrix, float_complex_matrix, *)
53
54 DEFBINOP (trans_mul, float_matrix, float_complex_matrix)
55 {
56 CAST_BINOP_ARGS (const octave_float_matrix&, const octave_float_complex_matrix&);
57
58 FloatMatrix m1 = v1.float_matrix_value ();
59 FloatComplexMatrix m2 = v2.float_complex_matrix_value ();
60
61 return FloatComplexMatrix (xgemm (true, m1, false, real (m2)),
62 xgemm (true, m1, false, imag (m2)));
63 }
53 64
54 DEFBINOP (div, float_matrix, float_complex_matrix) 65 DEFBINOP (div, float_matrix, float_complex_matrix)
55 { 66 {
56 CAST_BINOP_ARGS (const octave_float_matrix&, 67 CAST_BINOP_ARGS (const octave_float_matrix&,
57 const octave_float_complex_matrix&); 68 const octave_float_complex_matrix&);
171 octave_float_complex_matrix, el_ldiv); 182 octave_float_complex_matrix, el_ldiv);
172 INSTALL_BINOP (op_el_and, octave_float_matrix, 183 INSTALL_BINOP (op_el_and, octave_float_matrix,
173 octave_float_complex_matrix, el_and); 184 octave_float_complex_matrix, el_and);
174 INSTALL_BINOP (op_el_or, octave_float_matrix, 185 INSTALL_BINOP (op_el_or, octave_float_matrix,
175 octave_float_complex_matrix, el_or); 186 octave_float_complex_matrix, el_or);
187 INSTALL_BINOP (op_trans_mul, octave_float_matrix,
188 octave_float_complex_matrix, trans_mul);
189 INSTALL_BINOP (op_herm_mul, octave_float_matrix,
190 octave_float_complex_matrix, trans_mul);
191 INSTALL_BINOP (op_trans_ldiv, octave_float_matrix,
192 octave_float_complex_matrix, trans_ldiv);
193 INSTALL_BINOP (op_herm_ldiv, octave_float_matrix,
194 octave_float_complex_matrix, trans_ldiv);
176 195
177 INSTALL_CATOP (octave_float_matrix, octave_float_complex_matrix, fm_fcm); 196 INSTALL_CATOP (octave_float_matrix, octave_float_complex_matrix, fm_fcm);
178 INSTALL_CATOP (octave_matrix, octave_float_complex_matrix, m_fcm); 197 INSTALL_CATOP (octave_matrix, octave_float_complex_matrix, m_fcm);
179 INSTALL_CATOP (octave_float_matrix, octave_complex_matrix, fm_cm); 198 INSTALL_CATOP (octave_float_matrix, octave_complex_matrix, fm_cm);
180 199