# HG changeset patch # User Jaroslav Hajek # Date 1251661699 -7200 # Node ID 319e2ab9b8aec61b60424b98dc2746492f66a902 # Parent 5ab448e3febe368b8b75d632e50597250ebeafc7 warn about the complex comparison ops diff -r 5ab448e3febe -r 319e2ab9b8ae src/ChangeLog --- a/src/ChangeLog Sun Aug 30 10:32:10 2009 +0200 +++ b/src/ChangeLog Sun Aug 30 21:48:19 2009 +0200 @@ -1,3 +1,31 @@ +2009-08-30 Jaroslav Hajek + + * ops.h (DEFCMPLXCMPOP_OP, DEFNDCMPLXCMPOP_FN): New macros. + * gripes.cc (gripe_warn_complex_cmp): New function. + * gripes.h: declare it. + + * OPERATORS/op-cm-cm.cc: Call the new macros. + * OPERATORS/op-cm-cs.cc: Ditto. + * OPERATORS/op-cm-m.cc: Ditto. + * OPERATORS/op-cm-s.cc: Ditto. + * OPERATORS/op-cs-cm.cc: Ditto. + * OPERATORS/op-cs-cs.cc: Ditto. + * OPERATORS/op-cs-m.cc: Ditto. + * OPERATORS/op-fcm-fcm.cc: Ditto. + * OPERATORS/op-fcm-fcs.cc: Ditto. + * OPERATORS/op-fcm-fm.cc: Ditto. + * OPERATORS/op-fcm-fs.cc: Ditto. + * OPERATORS/op-fcs-fcm.cc: Ditto. + * OPERATORS/op-fcs-fcs.cc: Ditto. + * OPERATORS/op-fcs-fm.cc: Ditto. + * OPERATORS/op-fm-fcm.cc: Ditto. + * OPERATORS/op-fm-fcs.cc: Ditto. + * OPERATORS/op-fs-fcm.cc: Ditto. + * OPERATORS/op-m-cm.cc: Ditto. + * OPERATORS/op-m-cs.cc: Ditto. + * OPERATORS/op-s-cm.cc: Ditto. + + 2009-08-30 Jaroslav Hajek * ops.h (BOOL_OP1, BOOL_OP2, BOOL_OP3, SC_MX_BOOL_OP, MX_SC_BOOL_OP, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-cm-cm.cc --- a/src/OPERATORS/op-cm-cm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-cm-cm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -136,12 +136,12 @@ true, true, v2.complex_matrix_value ())); } -DEFNDBINOP_FN (lt, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_lt) -DEFNDBINOP_FN (le, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_le) -DEFNDBINOP_FN (eq, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_eq) -DEFNDBINOP_FN (ge, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_ge) -DEFNDBINOP_FN (gt, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_gt) -DEFNDBINOP_FN (ne, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_ne) +DEFNDCMPLXCMPOP_FN (lt, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_lt) +DEFNDCMPLXCMPOP_FN (le, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_le) +DEFNDCMPLXCMPOP_FN (eq, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_eq) +DEFNDCMPLXCMPOP_FN (ge, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_ge) +DEFNDCMPLXCMPOP_FN (gt, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_gt) +DEFNDCMPLXCMPOP_FN (ne, complex_matrix, complex_matrix, complex_array, complex_array, mx_el_ne) DEFNDBINOP_FN (el_mul, complex_matrix, complex_matrix, complex_array, complex_array, product) DEFNDBINOP_FN (el_div, complex_matrix, complex_matrix, complex_array, complex_array, quotient) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-cm-cs.cc --- a/src/OPERATORS/op-cm-cs.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-cm-cs.cc Sun Aug 30 21:48:19 2009 +0200 @@ -69,12 +69,12 @@ return ret; } -DEFNDBINOP_FN (lt, complex_matrix, complex, complex_array, complex, mx_el_lt) -DEFNDBINOP_FN (le, complex_matrix, complex, complex_array, complex, mx_el_le) -DEFNDBINOP_FN (eq, complex_matrix, complex, complex_array, complex, mx_el_eq) -DEFNDBINOP_FN (ge, complex_matrix, complex, complex_array, complex, mx_el_ge) -DEFNDBINOP_FN (gt, complex_matrix, complex, complex_array, complex, mx_el_gt) -DEFNDBINOP_FN (ne, complex_matrix, complex, complex_array, complex, mx_el_ne) +DEFNDCMPLXCMPOP_FN (lt, complex_matrix, complex, complex_array, complex, mx_el_lt) +DEFNDCMPLXCMPOP_FN (le, complex_matrix, complex, complex_array, complex, mx_el_le) +DEFNDCMPLXCMPOP_FN (eq, complex_matrix, complex, complex_array, complex, mx_el_eq) +DEFNDCMPLXCMPOP_FN (ge, complex_matrix, complex, complex_array, complex, mx_el_ge) +DEFNDCMPLXCMPOP_FN (gt, complex_matrix, complex, complex_array, complex, mx_el_gt) +DEFNDCMPLXCMPOP_FN (ne, complex_matrix, complex, complex_array, complex, mx_el_ne) DEFNDBINOP_OP (el_mul, complex_matrix, complex, complex_array, complex, *) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-cm-m.cc --- a/src/OPERATORS/op-cm-m.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-cm-m.cc Sun Aug 30 21:48:19 2009 +0200 @@ -78,12 +78,12 @@ return ret; } -DEFNDBINOP_FN (lt, complex_matrix, matrix, complex_array, array, mx_el_lt) -DEFNDBINOP_FN (le, complex_matrix, matrix, complex_array, array, mx_el_le) -DEFNDBINOP_FN (eq, complex_matrix, matrix, complex_array, array, mx_el_eq) -DEFNDBINOP_FN (ge, complex_matrix, matrix, complex_array, array, mx_el_ge) -DEFNDBINOP_FN (gt, complex_matrix, matrix, complex_array, array, mx_el_gt) -DEFNDBINOP_FN (ne, complex_matrix, matrix, complex_array, array, mx_el_ne) +DEFNDCMPLXCMPOP_FN (lt, complex_matrix, matrix, complex_array, array, mx_el_lt) +DEFNDCMPLXCMPOP_FN (le, complex_matrix, matrix, complex_array, array, mx_el_le) +DEFNDCMPLXCMPOP_FN (eq, complex_matrix, matrix, complex_array, array, mx_el_eq) +DEFNDCMPLXCMPOP_FN (ge, complex_matrix, matrix, complex_array, array, mx_el_ge) +DEFNDCMPLXCMPOP_FN (gt, complex_matrix, matrix, complex_array, array, mx_el_gt) +DEFNDCMPLXCMPOP_FN (ne, complex_matrix, matrix, complex_array, array, mx_el_ne) DEFNDBINOP_FN (el_mul, complex_matrix, matrix, complex_array, array, product) DEFNDBINOP_FN (el_div, complex_matrix, matrix, complex_array, array, quotient) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-cm-s.cc --- a/src/OPERATORS/op-cm-s.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-cm-s.cc Sun Aug 30 21:48:19 2009 +0200 @@ -73,12 +73,12 @@ return ret; } -DEFNDBINOP_FN (lt, complex_matrix, scalar, complex_array, scalar, mx_el_lt) -DEFNDBINOP_FN (le, complex_matrix, scalar, complex_array, scalar, mx_el_le) -DEFNDBINOP_FN (eq, complex_matrix, scalar, complex_array, scalar, mx_el_eq) -DEFNDBINOP_FN (ge, complex_matrix, scalar, complex_array, scalar, mx_el_ge) -DEFNDBINOP_FN (gt, complex_matrix, scalar, complex_array, scalar, mx_el_gt) -DEFNDBINOP_FN (ne, complex_matrix, scalar, complex_array, scalar, mx_el_ne) +DEFNDCMPLXCMPOP_FN (lt, complex_matrix, scalar, complex_array, scalar, mx_el_lt) +DEFNDCMPLXCMPOP_FN (le, complex_matrix, scalar, complex_array, scalar, mx_el_le) +DEFNDCMPLXCMPOP_FN (eq, complex_matrix, scalar, complex_array, scalar, mx_el_eq) +DEFNDCMPLXCMPOP_FN (ge, complex_matrix, scalar, complex_array, scalar, mx_el_ge) +DEFNDCMPLXCMPOP_FN (gt, complex_matrix, scalar, complex_array, scalar, mx_el_gt) +DEFNDCMPLXCMPOP_FN (ne, complex_matrix, scalar, complex_array, scalar, mx_el_ne) DEFNDBINOP_OP (el_mul, complex_matrix, scalar, complex_array, scalar, *) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-cs-cm.cc --- a/src/OPERATORS/op-cs-cm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-cs-cm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -69,12 +69,12 @@ return octave_value (v2.complex_array_value () / d); } -DEFNDBINOP_FN (lt, complex, complex_matrix, complex, complex_array, mx_el_lt) -DEFNDBINOP_FN (le, complex, complex_matrix, complex, complex_array, mx_el_le) -DEFNDBINOP_FN (eq, complex, complex_matrix, complex, complex_array, mx_el_eq) -DEFNDBINOP_FN (ge, complex, complex_matrix, complex, complex_array, mx_el_ge) -DEFNDBINOP_FN (gt, complex, complex_matrix, complex, complex_array, mx_el_gt) -DEFNDBINOP_FN (ne, complex, complex_matrix, complex, complex_array, mx_el_ne) +DEFNDCMPLXCMPOP_FN (lt, complex, complex_matrix, complex, complex_array, mx_el_lt) +DEFNDCMPLXCMPOP_FN (le, complex, complex_matrix, complex, complex_array, mx_el_le) +DEFNDCMPLXCMPOP_FN (eq, complex, complex_matrix, complex, complex_array, mx_el_eq) +DEFNDCMPLXCMPOP_FN (ge, complex, complex_matrix, complex, complex_array, mx_el_ge) +DEFNDCMPLXCMPOP_FN (gt, complex, complex_matrix, complex, complex_array, mx_el_gt) +DEFNDCMPLXCMPOP_FN (ne, complex, complex_matrix, complex, complex_array, mx_el_ne) DEFNDBINOP_OP (el_mul, complex, complex_matrix, complex, complex_array, *) DEFNDBINOP_FN (el_div, complex, complex_matrix, complex, complex_array, x_el_div) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-cs-cs.cc --- a/src/OPERATORS/op-cs-cs.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-cs-cs.cc Sun Aug 30 21:48:19 2009 +0200 @@ -96,12 +96,12 @@ return octave_value (v2.complex_value () / d); } -DEFBINOP_OP (lt, complex, complex, <) -DEFBINOP_OP (le, complex, complex, <=) -DEFBINOP_OP (eq, complex, complex, ==) -DEFBINOP_OP (ge, complex, complex, >=) -DEFBINOP_OP (gt, complex, complex, >) -DEFBINOP_OP (ne, complex, complex, !=) +DEFCMPLXCMPOP_OP (lt, complex, complex, <) +DEFCMPLXCMPOP_OP (le, complex, complex, <=) +DEFCMPLXCMPOP_OP (eq, complex, complex, ==) +DEFCMPLXCMPOP_OP (ge, complex, complex, >=) +DEFCMPLXCMPOP_OP (gt, complex, complex, >) +DEFCMPLXCMPOP_OP (ne, complex, complex, !=) DEFBINOP_OP (el_mul, complex, complex, *) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-cs-m.cc --- a/src/OPERATORS/op-cs-m.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-cs-m.cc Sun Aug 30 21:48:19 2009 +0200 @@ -75,12 +75,12 @@ return octave_value (v2.array_value () / d); } -DEFNDBINOP_FN (lt, complex, matrix, complex, array, mx_el_lt) -DEFNDBINOP_FN (le, complex, matrix, complex, array, mx_el_le) -DEFNDBINOP_FN (eq, complex, matrix, complex, array, mx_el_eq) -DEFNDBINOP_FN (ge, complex, matrix, complex, array, mx_el_ge) -DEFNDBINOP_FN (gt, complex, matrix, complex, array, mx_el_gt) -DEFNDBINOP_FN (ne, complex, matrix, complex, array, mx_el_ne) +DEFNDCMPLXCMPOP_FN (lt, complex, matrix, complex, array, mx_el_lt) +DEFNDCMPLXCMPOP_FN (le, complex, matrix, complex, array, mx_el_le) +DEFNDCMPLXCMPOP_FN (eq, complex, matrix, complex, array, mx_el_eq) +DEFNDCMPLXCMPOP_FN (ge, complex, matrix, complex, array, mx_el_ge) +DEFNDCMPLXCMPOP_FN (gt, complex, matrix, complex, array, mx_el_gt) +DEFNDCMPLXCMPOP_FN (ne, complex, matrix, complex, array, mx_el_ne) DEFNDBINOP_OP (el_mul, complex, matrix, complex, array, *) DEFNDBINOP_FN (el_div, complex, matrix, complex, array, x_el_div) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fcm-fcm.cc --- a/src/OPERATORS/op-fcm-fcm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fcm-fcm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -140,17 +140,17 @@ true, true, v2.float_complex_matrix_value ())); } -DEFNDBINOP_FN (lt, float_complex_matrix, float_complex_matrix, +DEFNDCMPLXCMPOP_FN (lt, float_complex_matrix, float_complex_matrix, float_complex_array, float_complex_array, mx_el_lt) -DEFNDBINOP_FN (le, float_complex_matrix, float_complex_matrix, +DEFNDCMPLXCMPOP_FN (le, float_complex_matrix, float_complex_matrix, float_complex_array, float_complex_array, mx_el_le) -DEFNDBINOP_FN (eq, float_complex_matrix, float_complex_matrix, +DEFNDCMPLXCMPOP_FN (eq, float_complex_matrix, float_complex_matrix, float_complex_array, float_complex_array, mx_el_eq) -DEFNDBINOP_FN (ge, float_complex_matrix, float_complex_matrix, +DEFNDCMPLXCMPOP_FN (ge, float_complex_matrix, float_complex_matrix, float_complex_array, float_complex_array, mx_el_ge) -DEFNDBINOP_FN (gt, float_complex_matrix, float_complex_matrix, +DEFNDCMPLXCMPOP_FN (gt, float_complex_matrix, float_complex_matrix, float_complex_array, float_complex_array, mx_el_gt) -DEFNDBINOP_FN (ne, float_complex_matrix, float_complex_matrix, +DEFNDCMPLXCMPOP_FN (ne, float_complex_matrix, float_complex_matrix, float_complex_array, float_complex_array, mx_el_ne) DEFNDBINOP_FN (el_mul, float_complex_matrix, float_complex_matrix, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fcm-fcs.cc --- a/src/OPERATORS/op-fcm-fcs.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fcm-fcs.cc Sun Aug 30 21:48:19 2009 +0200 @@ -75,17 +75,17 @@ return ret; } -DEFNDBINOP_FN (lt, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (lt, float_complex_matrix, float_complex, float_complex_array, float_complex, mx_el_lt) -DEFNDBINOP_FN (le, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (le, float_complex_matrix, float_complex, float_complex_array, float_complex, mx_el_le) -DEFNDBINOP_FN (eq, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (eq, float_complex_matrix, float_complex, float_complex_array, float_complex, mx_el_eq) -DEFNDBINOP_FN (ge, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (ge, float_complex_matrix, float_complex, float_complex_array, float_complex, mx_el_ge) -DEFNDBINOP_FN (gt, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (gt, float_complex_matrix, float_complex, float_complex_array, float_complex, mx_el_gt) -DEFNDBINOP_FN (ne, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (ne, float_complex_matrix, float_complex, float_complex_array, float_complex, mx_el_ne) DEFNDBINOP_OP (el_mul, float_complex_matrix, float_complex, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fcm-fm.cc --- a/src/OPERATORS/op-fcm-fm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fcm-fm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -82,17 +82,17 @@ return ret; } -DEFNDBINOP_FN (lt, float_complex_matrix, float_matrix, +DEFNDCMPLXCMPOP_FN (lt, float_complex_matrix, float_matrix, float_complex_array, float_array, mx_el_lt) -DEFNDBINOP_FN (le, float_complex_matrix, float_matrix, +DEFNDCMPLXCMPOP_FN (le, float_complex_matrix, float_matrix, float_complex_array, float_array, mx_el_le) -DEFNDBINOP_FN (eq, float_complex_matrix, float_matrix, +DEFNDCMPLXCMPOP_FN (eq, float_complex_matrix, float_matrix, float_complex_array, float_array, mx_el_eq) -DEFNDBINOP_FN (ge, float_complex_matrix, float_matrix, +DEFNDCMPLXCMPOP_FN (ge, float_complex_matrix, float_matrix, float_complex_array, float_array, mx_el_ge) -DEFNDBINOP_FN (gt, float_complex_matrix, float_matrix, +DEFNDCMPLXCMPOP_FN (gt, float_complex_matrix, float_matrix, float_complex_array, float_array, mx_el_gt) -DEFNDBINOP_FN (ne, float_complex_matrix, float_matrix, +DEFNDCMPLXCMPOP_FN (ne, float_complex_matrix, float_matrix, float_complex_array, float_array, mx_el_ne) DEFNDBINOP_FN (el_mul, float_complex_matrix, float_matrix, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fcm-fs.cc --- a/src/OPERATORS/op-fcm-fs.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fcm-fs.cc Sun Aug 30 21:48:19 2009 +0200 @@ -75,17 +75,17 @@ return ret; } -DEFNDBINOP_FN (lt, float_complex_matrix, float_scalar, float_complex_array, +DEFNDCMPLXCMPOP_FN (lt, float_complex_matrix, float_scalar, float_complex_array, float_scalar, mx_el_lt) -DEFNDBINOP_FN (le, float_complex_matrix, float_scalar, float_complex_array, +DEFNDCMPLXCMPOP_FN (le, float_complex_matrix, float_scalar, float_complex_array, float_scalar, mx_el_le) -DEFNDBINOP_FN (eq, float_complex_matrix, float_scalar, float_complex_array, +DEFNDCMPLXCMPOP_FN (eq, float_complex_matrix, float_scalar, float_complex_array, float_scalar, mx_el_eq) -DEFNDBINOP_FN (ge, float_complex_matrix, float_scalar, float_complex_array, +DEFNDCMPLXCMPOP_FN (ge, float_complex_matrix, float_scalar, float_complex_array, float_scalar, mx_el_ge) -DEFNDBINOP_FN (gt, float_complex_matrix, float_scalar, float_complex_array, +DEFNDCMPLXCMPOP_FN (gt, float_complex_matrix, float_scalar, float_complex_array, float_scalar, mx_el_gt) -DEFNDBINOP_FN (ne, float_complex_matrix, float_scalar, float_complex_array, +DEFNDCMPLXCMPOP_FN (ne, float_complex_matrix, float_scalar, float_complex_array, float_scalar, mx_el_ne) DEFNDBINOP_OP (el_mul, float_complex_matrix, float_scalar, float_complex_array, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fcs-fcm.cc --- a/src/OPERATORS/op-fcs-fcm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fcs-fcm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -71,17 +71,17 @@ return octave_value (v2.float_complex_array_value () / d); } -DEFNDBINOP_FN (lt, float_complex, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (lt, float_complex, float_complex_matrix, float_complex, float_complex_array, mx_el_lt) -DEFNDBINOP_FN (le, float_complex, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (le, float_complex, float_complex_matrix, float_complex, float_complex_array, mx_el_le) -DEFNDBINOP_FN (eq, float_complex, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (eq, float_complex, float_complex_matrix, float_complex, float_complex_array, mx_el_eq) -DEFNDBINOP_FN (ge, float_complex, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (ge, float_complex, float_complex_matrix, float_complex, float_complex_array, mx_el_ge) -DEFNDBINOP_FN (gt, float_complex, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (gt, float_complex, float_complex_matrix, float_complex, float_complex_array, mx_el_gt) -DEFNDBINOP_FN (ne, float_complex, float_complex_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (ne, float_complex, float_complex_matrix, float_complex, float_complex_array, mx_el_ne) DEFNDBINOP_OP (el_mul, float_complex, float_complex_matrix, float_complex, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fcs-fcs.cc --- a/src/OPERATORS/op-fcs-fcs.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fcs-fcs.cc Sun Aug 30 21:48:19 2009 +0200 @@ -94,12 +94,12 @@ return octave_value (v2.float_complex_value () / d); } -DEFBINOP_OP (lt, float_complex, float_complex, <) -DEFBINOP_OP (le, float_complex, float_complex, <=) -DEFBINOP_OP (eq, float_complex, float_complex, ==) -DEFBINOP_OP (ge, float_complex, float_complex, >=) -DEFBINOP_OP (gt, float_complex, float_complex, >) -DEFBINOP_OP (ne, float_complex, float_complex, !=) +DEFCMPLXCMPOP_OP (lt, float_complex, float_complex, <) +DEFCMPLXCMPOP_OP (le, float_complex, float_complex, <=) +DEFCMPLXCMPOP_OP (eq, float_complex, float_complex, ==) +DEFCMPLXCMPOP_OP (ge, float_complex, float_complex, >=) +DEFCMPLXCMPOP_OP (gt, float_complex, float_complex, >) +DEFCMPLXCMPOP_OP (ne, float_complex, float_complex, !=) DEFBINOP_OP (el_mul, float_complex, float_complex, *) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fcs-fm.cc --- a/src/OPERATORS/op-fcs-fm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fcs-fm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -78,17 +78,17 @@ return octave_value (v2.float_array_value () / d); } -DEFNDBINOP_FN (lt, float_complex, float_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (lt, float_complex, float_matrix, float_complex, float_array, mx_el_lt) -DEFNDBINOP_FN (le, float_complex, float_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (le, float_complex, float_matrix, float_complex, float_array, mx_el_le) -DEFNDBINOP_FN (eq, float_complex, float_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (eq, float_complex, float_matrix, float_complex, float_array, mx_el_eq) -DEFNDBINOP_FN (ge, float_complex, float_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (ge, float_complex, float_matrix, float_complex, float_array, mx_el_ge) -DEFNDBINOP_FN (gt, float_complex, float_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (gt, float_complex, float_matrix, float_complex, float_array, mx_el_gt) -DEFNDBINOP_FN (ne, float_complex, float_matrix, float_complex, +DEFNDCMPLXCMPOP_FN (ne, float_complex, float_matrix, float_complex, float_array, mx_el_ne) DEFNDBINOP_OP (el_mul, float_complex, float_matrix, float_complex, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fm-fcm.cc --- a/src/OPERATORS/op-fm-fcm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fm-fcm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -83,17 +83,17 @@ return ret; } -DEFNDBINOP_FN (lt, float_matrix, float_complex_matrix, float_array, +DEFNDCMPLXCMPOP_FN (lt, float_matrix, float_complex_matrix, float_array, float_complex_array, mx_el_lt) -DEFNDBINOP_FN (le, float_matrix, float_complex_matrix, float_array, +DEFNDCMPLXCMPOP_FN (le, float_matrix, float_complex_matrix, float_array, float_complex_array, mx_el_le) -DEFNDBINOP_FN (eq, float_matrix, float_complex_matrix, float_array, +DEFNDCMPLXCMPOP_FN (eq, float_matrix, float_complex_matrix, float_array, float_complex_array, mx_el_eq) -DEFNDBINOP_FN (ge, float_matrix, float_complex_matrix, float_array, +DEFNDCMPLXCMPOP_FN (ge, float_matrix, float_complex_matrix, float_array, float_complex_array, mx_el_ge) -DEFNDBINOP_FN (gt, float_matrix, float_complex_matrix, float_array, +DEFNDCMPLXCMPOP_FN (gt, float_matrix, float_complex_matrix, float_array, float_complex_array, mx_el_gt) -DEFNDBINOP_FN (ne, float_matrix, float_complex_matrix, float_array, +DEFNDCMPLXCMPOP_FN (ne, float_matrix, float_complex_matrix, float_array, float_complex_array, mx_el_ne) DEFNDBINOP_FN (el_mul, float_matrix, float_complex_matrix, float_array, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fm-fcs.cc --- a/src/OPERATORS/op-fm-fcs.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fm-fcs.cc Sun Aug 30 21:48:19 2009 +0200 @@ -78,17 +78,17 @@ return ret; } -DEFNDBINOP_FN (lt, float_matrix, float_complex, float_array, +DEFNDCMPLXCMPOP_FN (lt, float_matrix, float_complex, float_array, float_complex, mx_el_lt) -DEFNDBINOP_FN (le, float_matrix, float_complex, float_array, +DEFNDCMPLXCMPOP_FN (le, float_matrix, float_complex, float_array, float_complex, mx_el_le) -DEFNDBINOP_FN (eq, float_matrix, float_complex, float_array, +DEFNDCMPLXCMPOP_FN (eq, float_matrix, float_complex, float_array, float_complex, mx_el_eq) -DEFNDBINOP_FN (ge, float_matrix, float_complex, float_array, +DEFNDCMPLXCMPOP_FN (ge, float_matrix, float_complex, float_array, float_complex, mx_el_ge) -DEFNDBINOP_FN (gt, float_matrix, float_complex, float_array, +DEFNDCMPLXCMPOP_FN (gt, float_matrix, float_complex, float_array, float_complex, mx_el_gt) -DEFNDBINOP_FN (ne, float_matrix, float_complex, float_array, +DEFNDCMPLXCMPOP_FN (ne, float_matrix, float_complex, float_array, float_complex, mx_el_ne) DEFNDBINOP_OP (el_mul, float_matrix, float_complex, float_array, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-fs-fcm.cc --- a/src/OPERATORS/op-fs-fcm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-fs-fcm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -82,17 +82,17 @@ return octave_value (v2.float_complex_array_value () / d); } -DEFNDBINOP_FN (lt, float_scalar, float_complex_matrix, float_scalar, +DEFNDCMPLXCMPOP_FN (lt, float_scalar, float_complex_matrix, float_scalar, float_complex_array, mx_el_lt) -DEFNDBINOP_FN (le, float_scalar, float_complex_matrix, float_scalar, +DEFNDCMPLXCMPOP_FN (le, float_scalar, float_complex_matrix, float_scalar, float_complex_array, mx_el_le) -DEFNDBINOP_FN (eq, float_scalar, float_complex_matrix, float_scalar, +DEFNDCMPLXCMPOP_FN (eq, float_scalar, float_complex_matrix, float_scalar, float_complex_array, mx_el_eq) -DEFNDBINOP_FN (ge, float_scalar, float_complex_matrix, float_scalar, +DEFNDCMPLXCMPOP_FN (ge, float_scalar, float_complex_matrix, float_scalar, float_complex_array, mx_el_ge) -DEFNDBINOP_FN (gt, float_scalar, float_complex_matrix, float_scalar, +DEFNDCMPLXCMPOP_FN (gt, float_scalar, float_complex_matrix, float_scalar, float_complex_array, mx_el_gt) -DEFNDBINOP_FN (ne, float_scalar, float_complex_matrix, float_scalar, +DEFNDCMPLXCMPOP_FN (ne, float_scalar, float_complex_matrix, float_scalar, float_complex_array, mx_el_ne) DEFNDBINOP_OP (el_mul, float_scalar, float_complex_matrix, float_scalar, diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-m-cm.cc --- a/src/OPERATORS/op-m-cm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-m-cm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -79,12 +79,12 @@ return ret; } -DEFNDBINOP_FN (lt, matrix, complex_matrix, array, complex_array, mx_el_lt) -DEFNDBINOP_FN (le, matrix, complex_matrix, array, complex_array, mx_el_le) -DEFNDBINOP_FN (eq, matrix, complex_matrix, array, complex_array, mx_el_eq) -DEFNDBINOP_FN (ge, matrix, complex_matrix, array, complex_array, mx_el_ge) -DEFNDBINOP_FN (gt, matrix, complex_matrix, array, complex_array, mx_el_gt) -DEFNDBINOP_FN (ne, matrix, complex_matrix, array, complex_array, mx_el_ne) +DEFNDCMPLXCMPOP_FN (lt, matrix, complex_matrix, array, complex_array, mx_el_lt) +DEFNDCMPLXCMPOP_FN (le, matrix, complex_matrix, array, complex_array, mx_el_le) +DEFNDCMPLXCMPOP_FN (eq, matrix, complex_matrix, array, complex_array, mx_el_eq) +DEFNDCMPLXCMPOP_FN (ge, matrix, complex_matrix, array, complex_array, mx_el_ge) +DEFNDCMPLXCMPOP_FN (gt, matrix, complex_matrix, array, complex_array, mx_el_gt) +DEFNDCMPLXCMPOP_FN (ne, matrix, complex_matrix, array, complex_array, mx_el_ne) DEFNDBINOP_FN (el_mul, matrix, complex_matrix, array, complex_array, product) DEFNDBINOP_FN (el_div, matrix, complex_matrix, array, complex_array, quotient) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-m-cs.cc --- a/src/OPERATORS/op-m-cs.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-m-cs.cc Sun Aug 30 21:48:19 2009 +0200 @@ -77,12 +77,12 @@ return ret; } -DEFNDBINOP_FN (lt, matrix, complex, array, complex, mx_el_lt) -DEFNDBINOP_FN (le, matrix, complex, array, complex, mx_el_le) -DEFNDBINOP_FN (eq, matrix, complex, array, complex, mx_el_eq) -DEFNDBINOP_FN (ge, matrix, complex, array, complex, mx_el_ge) -DEFNDBINOP_FN (gt, matrix, complex, array, complex, mx_el_gt) -DEFNDBINOP_FN (ne, matrix, complex, array, complex, mx_el_ne) +DEFNDCMPLXCMPOP_FN (lt, matrix, complex, array, complex, mx_el_lt) +DEFNDCMPLXCMPOP_FN (le, matrix, complex, array, complex, mx_el_le) +DEFNDCMPLXCMPOP_FN (eq, matrix, complex, array, complex, mx_el_eq) +DEFNDCMPLXCMPOP_FN (ge, matrix, complex, array, complex, mx_el_ge) +DEFNDCMPLXCMPOP_FN (gt, matrix, complex, array, complex, mx_el_gt) +DEFNDCMPLXCMPOP_FN (ne, matrix, complex, array, complex, mx_el_ne) DEFNDBINOP_OP (el_mul, matrix, complex, array, complex, *) diff -r 5ab448e3febe -r 319e2ab9b8ae src/OPERATORS/op-s-cm.cc --- a/src/OPERATORS/op-s-cm.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/OPERATORS/op-s-cm.cc Sun Aug 30 21:48:19 2009 +0200 @@ -77,12 +77,12 @@ return octave_value (v2.complex_array_value () / d); } -DEFNDBINOP_FN (lt, scalar, complex_matrix, scalar, complex_array, mx_el_lt) -DEFNDBINOP_FN (le, scalar, complex_matrix, scalar, complex_array, mx_el_le) -DEFNDBINOP_FN (eq, scalar, complex_matrix, scalar, complex_array, mx_el_eq) -DEFNDBINOP_FN (ge, scalar, complex_matrix, scalar, complex_array, mx_el_ge) -DEFNDBINOP_FN (gt, scalar, complex_matrix, scalar, complex_array, mx_el_gt) -DEFNDBINOP_FN (ne, scalar, complex_matrix, scalar, complex_array, mx_el_ne) +DEFNDCMPLXCMPOP_FN (lt, scalar, complex_matrix, scalar, complex_array, mx_el_lt) +DEFNDCMPLXCMPOP_FN (le, scalar, complex_matrix, scalar, complex_array, mx_el_le) +DEFNDCMPLXCMPOP_FN (eq, scalar, complex_matrix, scalar, complex_array, mx_el_eq) +DEFNDCMPLXCMPOP_FN (ge, scalar, complex_matrix, scalar, complex_array, mx_el_ge) +DEFNDCMPLXCMPOP_FN (gt, scalar, complex_matrix, scalar, complex_array, mx_el_gt) +DEFNDCMPLXCMPOP_FN (ne, scalar, complex_matrix, scalar, complex_array, mx_el_ne) DEFNDBINOP_OP (el_mul, scalar, complex_matrix, scalar, complex_array, *) DEFNDBINOP_FN (el_div, scalar, complex_matrix, scalar, complex_array, x_el_div) diff -r 5ab448e3febe -r 319e2ab9b8ae src/error.cc --- a/src/error.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/error.cc Sun Aug 30 21:48:19 2009 +0200 @@ -1406,6 +1406,7 @@ disable_warning ("Octave:int-convert-non-int-val"); disable_warning ("Octave:int-convert-overflow"); disable_warning ("Octave:int-math-overflow"); + disable_warning ("Octave:complex-cmp-ops"); } DEFUN (lasterror, args, , diff -r 5ab448e3febe -r 319e2ab9b8ae src/gripes.cc --- a/src/gripes.cc Sun Aug 30 10:32:10 2009 +0200 +++ b/src/gripes.cc Sun Aug 30 21:48:19 2009 +0200 @@ -271,6 +271,13 @@ error ("a cs-list cannot be further indexed"); } +void +gripe_warn_complex_cmp (void) +{ + warning_with_id ("Octave:matlab-incompatible", + "potential Matlab compatibility problem: comparing complex numbers"); +} + /* ;;; Local Variables: *** ;;; mode: C++ *** diff -r 5ab448e3febe -r 319e2ab9b8ae src/gripes.h --- a/src/gripes.h Sun Aug 30 10:32:10 2009 +0200 +++ b/src/gripes.h Sun Aug 30 21:48:19 2009 +0200 @@ -140,6 +140,9 @@ extern OCTINTERP_API void gripe_indexed_cs_list (void); +extern OCTINTERP_API void +gripe_warn_complex_cmp (void); + #endif /* diff -r 5ab448e3febe -r 319e2ab9b8ae src/ops.h --- a/src/ops.h Sun Aug 30 10:32:10 2009 +0200 +++ b/src/ops.h Sun Aug 30 21:48:19 2009 +0200 @@ -287,6 +287,15 @@ (v1.CONCAT2(t1, _value) () op v2.CONCAT2(t2, _value) ()); \ } +#define DEFCMPLXCMPOP_OP(name, t1, t2, op) \ + BINOPDECL (name, a1, a2) \ + { \ + CAST_BINOP_ARGS (const CONCAT2(octave_, t1)&, const CONCAT2(octave_, t2)&); \ + gripe_warn_complex_cmp (); \ + return octave_value \ + (v1.CONCAT2(t1, _value) () op v2.CONCAT2(t2, _value) ()); \ + } + #define DEFSCALARBOOLOP_OP(name, t1, t2, op) \ BINOPDECL (name, a1, a2) \ { \ @@ -325,6 +334,13 @@ return octave_value (f (v1.CONCAT2(e1, _value) (), v2.CONCAT2(e2, _value) ())); \ } +#define DEFNDCMPLXCMPOP_FN(name, t1, t2, e1, e2, f) \ + BINOPDECL (name, a1, a2) \ + { \ + CAST_BINOP_ARGS (const CONCAT2(octave_, t1)&, const CONCAT2(octave_, t2)&); \ + return octave_value (f (v1.CONCAT2(e1, _value) (), v2.CONCAT2(e2, _value) ())); \ + } + #define BINOP_NONCONFORMANT(msg) \ gripe_nonconformant (msg, \ a1.rows (), a1.columns (), \