diff liboctave/boolMatrix.cc @ 2832:4dff308e9acc

[project @ 1997-03-26 05:16:58 by jwe]
author jwe
date Wed, 26 Mar 1997 05:17:00 +0000
parents 92826d6e8bd9
children 011e9216356f
line wrap: on
line diff
--- a/liboctave/boolMatrix.cc
+++ b/liboctave/boolMatrix.cc
@@ -75,6 +75,114 @@
   return result;
 }
 
+boolMatrix
+Matrix::all (void) 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;
+}
+
+boolMatrix
+Matrix::any (void) 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;
+}
+
 /*
 ;;; Local Variables: ***
 ;;; mode: C++ ***