diff src/ops.h @ 2601:3723512a827a

[project @ 1997-01-06 05:43:16 by jwe]
author jwe
date Mon, 06 Jan 1997 05:44:24 +0000
parents 2142216bf85a
children e2d1b073b78a
line wrap: on
line diff
--- a/src/ops.h
+++ b/src/ops.h
@@ -60,20 +60,24 @@
       retval (i, j) = test; \
   return retval;
 
-#define SC_MX_BOOL_OP(st, sn, get_s, mt, mn, get_m, test) \
+#define SC_MX_BOOL_OP(st, sn, get_s, mt, mn, get_m, test, empty_result) \
   do \
     { \
       BOOL_OP1 (st, sn, get_s, mt, mn, get_m) \
       BOOL_OP2 (mn) \
+      if (nr == 0|| nc == 0) \
+        return empty_result; \
       BOOL_OP3 (test) \
     } \
   while (0)
 
-#define MX_SC_BOOL_OP(mt, mn, get_m, st, sn, get_s, test) \
+#define MX_SC_BOOL_OP(mt, mn, get_m, st, sn, get_s, test, empty_result) \
   do \
     { \
       BOOL_OP1 (mt, mn, get_m, st, sn, get_s) \
       BOOL_OP2 (mn) \
+      if (nr == 0|| nc == 0) \
+        return empty_result; \
       BOOL_OP3 (test) \
     } \
   while (0)
@@ -83,10 +87,10 @@
   do \
     { \
       BOOL_OP1 (m1t, m1n, get_m1, m2t, m2n, get_m2) \
-      int m1_nr = m1.rows (); \
-      int m1_nc = m1.cols (); \
-      int m2_nr = m2.rows (); \
-      int m2_nc = m2.cols (); \
+      int m1_nr = m1n.rows (); \
+      int m1_nc = m1n.cols (); \
+      int m2_nr = m2n.rows (); \
+      int m2_nc = m2n.cols (); \
       if (m1_nr != m2_nr || m1_nc != m2_nc) \
 	{ \
 	  gripe_nonconformant ("operator " op, m1_nr, m1_nc, m2_nr, m2_nc); \