diff --git a/libinterp/operators/op-cs-cm.cc b/libinterp/operators/op-cs-cm.cc --- a/libinterp/operators/op-cs-cm.cc +++ b/libinterp/operators/op-cs-cm.cc @@ -45,6 +45,9 @@ DEFBINOP (div, complex, complex_matrix) const octave_complex& v1 = dynamic_cast (a1); const octave_complex_matrix& v2 = dynamic_cast (a2); + if (v2.numel () > 2) + return octave_value (x_el_div (v1.complex_value (), v2.complex_array_value ())); + ComplexMatrix m1 = v1.complex_matrix_value (); ComplexMatrix m2 = v2.complex_matrix_value (); MatrixType typ = v2.matrix_type (); diff --git a/libinterp/operators/op-cs-m.cc b/libinterp/operators/op-cs-m.cc --- a/libinterp/operators/op-cs-m.cc +++ b/libinterp/operators/op-cs-m.cc @@ -51,6 +51,9 @@ DEFBINOP (div, complex, matrix) const octave_complex& v1 = dynamic_cast (a1); const octave_matrix& v2 = dynamic_cast (a2); + if (v2.numel () > 2) + return octave_value (x_el_div (v1.complex_value (), v2.array_value ())); + ComplexMatrix m1 = v1.complex_matrix_value (); Matrix m2 = v2.matrix_value (); MatrixType typ = v2.matrix_type (); diff --git a/libinterp/operators/op-fcs-fcm.cc b/libinterp/operators/op-fcs-fcm.cc --- a/libinterp/operators/op-fcs-fcm.cc +++ b/libinterp/operators/op-fcs-fcm.cc @@ -50,6 +50,9 @@ DEFBINOP (div, float_complex, float_comp const octave_float_complex& v1 = dynamic_cast (a1); const octave_float_complex_matrix& v2 = dynamic_cast (a2); + if (v2.numel () > 2) + return octave_value (x_el_div (v1.float_complex_value (), v2.float_complex_array_value ())); + FloatComplexMatrix m1 = v1.float_complex_matrix_value (); FloatComplexMatrix m2 = v2.float_complex_matrix_value (); MatrixType typ = v2.matrix_type (); diff --git a/libinterp/operators/op-fcs-fm.cc b/libinterp/operators/op-fcs-fm.cc --- a/libinterp/operators/op-fcs-fm.cc +++ b/libinterp/operators/op-fcs-fm.cc @@ -52,6 +52,9 @@ DEFBINOP (div, float_complex, float_matr const octave_float_complex& v1 = dynamic_cast (a1); const octave_float_matrix& v2 = dynamic_cast (a2); + if (v2.numel () > 2) + return octave_value (x_el_div (v1.float_complex_value (), v2.float_array_value ())); + FloatComplexMatrix m1 = v1.float_complex_matrix_value (); FloatMatrix m2 = v2.float_matrix_value (); MatrixType typ = v2.matrix_type (); diff --git a/libinterp/operators/op-s-cm.cc b/libinterp/operators/op-s-cm.cc --- a/libinterp/operators/op-s-cm.cc +++ b/libinterp/operators/op-s-cm.cc @@ -53,6 +53,9 @@ DEFBINOP (div, scalar, complex_matrix) const octave_scalar& v1 = dynamic_cast (a1); const octave_complex_matrix& v2 = dynamic_cast (a2); + if (v2.numel () > 2) + return octave_value (x_el_div (v1.scalar_value (), v2.complex_array_value ())); + Matrix m1 = v1.matrix_value (); ComplexMatrix m2 = v2.complex_matrix_value (); MatrixType typ = v2.matrix_type (); diff --git a/libinterp/operators/op-s-m.cc b/libinterp/operators/op-s-m.cc --- a/libinterp/operators/op-s-m.cc +++ b/libinterp/operators/op-s-m.cc @@ -47,6 +47,9 @@ DEFBINOP (div, scalar, matrix) const octave_scalar& v1 = dynamic_cast (a1); const octave_matrix& v2 = dynamic_cast (a2); + if (v2.numel () > 2) + return octave_value (x_el_div (v1.scalar_value (), v2.array_value ())); + Matrix m1 = v1.matrix_value (); Matrix m2 = v2.matrix_value (); MatrixType typ = v2.matrix_type ();