diff liboctave/boolMatrix.cc @ 4015:6476dd85a65f

[project @ 2002-08-02 07:59:19 by jwe]
author jwe
date Fri, 02 Aug 2002 07:59:20 +0000
parents 7c8e3c42ed04
children 6e86256e9c54
line wrap: on
line diff
--- a/liboctave/boolMatrix.cc
+++ b/liboctave/boolMatrix.cc
@@ -79,112 +79,19 @@
 
 // other operations
 
+// XXX FIXME XXX Do these really belong here?  Maybe they should be
+// in a base class?
+
 boolMatrix
-boolMatrix::all (void) const
+boolMatrix::all (int dim) const
 {
-  int nr = rows ();
-  int nc = cols ();
-  boolMatrix retval;
-  if (nr > 0 && nc > 0)
-    {
-      if (nr == 1)
-	{
-	  retval.resize (1, 1);
-	  retval.elem (0, 0) = true;
-	  for (int j = 0; j < nc; j++)
-	    {
-	      if (! elem (0, j))
-		{
-		  retval.elem (0, 0) = false;
-		  break;
-		}
-	    }
-	}
-      else if (nc == 1)
-	{
-	  retval.resize (1, 1);
-	  retval.elem (0, 0) = true;
-	  for (int i = 0; i < nr; i++)
-	    {
-	      if (! elem (i, 0))
-		{
-		  retval.elem (0, 0) = false;
-		  break;
-		}
-	    }
-	}
-      else
-	{
-	  retval.resize (1, nc);
-	  for (int j = 0; j < nc; j++)
-	    {
-	      retval.elem (0, j) = true;
-	      for (int i = 0; i < nr; i++)
-		{
-		  if (! elem (i, j))
-		    {
-		      retval.elem (0, j) = false;
-		      break;
-		    }
-		}
-	    }
-	}
-    }
-  return retval;
+  MX_ALL_OP (dim);
 }
 
 boolMatrix
-boolMatrix::any (void) const
+boolMatrix::any (int dim) const
 {
-  int nr = rows ();
-  int nc = cols ();
-  boolMatrix retval;
-  if (nr > 0 && nc > 0)
-    {
-      if (nr == 1)
-	{
-	  retval.resize (1, 1);
-	  retval.elem (0, 0) = false;
-	  for (int j = 0; j < nc; j++)
-	    {
-	      if (elem (0, j))
-		{
-		  retval.elem (0, 0) = true;
-		  break;
-		}
-	    }
-	}
-      else if (nc == 1)
-	{
-	  retval.resize (1, 1);
-	  retval.elem (0, 0) = false;
-	  for (int i = 0; i < nr; i++)
-	    {
-	      if (elem (i, 0))
-		{
-		  retval.elem (0, 0) = true;
-		  break;
-		}
-	    }
-	}
-      else
-	{
-	  retval.resize (1, nc);
-	  for (int j = 0; j < nc; j++)
-	    {
-	      retval.elem (0, j) = false;
-	      for (int i = 0; i < nr; i++)
-		{
-		  if (elem (i, j))
-		    {
-		      retval.elem (0, j) = true;
-		      break;
-		    }
-		}
-	    }
-	}
-    }
-  return retval;
+  MX_ANY_OP (dim);
 }
 
 MM_CMP_OPS(boolMatrix, , boolMatrix, )