Mercurial > hg > octave-lyh
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++ ***