Mercurial > octave
changeset 2832:4dff308e9acc
[project @ 1997-03-26 05:16:58 by jwe]
author | jwe |
---|---|
date | Wed, 26 Mar 1997 05:17:00 +0000 |
parents | 19c45d29f177 |
children | 011e9216356f |
files | liboctave/CMatrix.cc liboctave/CMatrix.h liboctave/ChangeLog liboctave/boolMatrix.cc liboctave/boolMatrix.h liboctave/dMatrix.cc liboctave/dMatrix.h scripts/miscellaneous/bug_report.m src/ChangeLog |
diffstat | 9 files changed, 158 insertions(+), 38 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/CMatrix.cc Wed Mar 26 04:18:15 1997 +0000 +++ b/liboctave/CMatrix.cc Wed Mar 26 05:17:00 1997 +0000 @@ -2062,23 +2062,23 @@ return false; } -Matrix +boolMatrix ComplexMatrix::all (void) const { int nr = rows (); int nc = cols (); - Matrix retval; + boolMatrix retval; if (nr > 0 && nc > 0) { if (nr == 1) { retval.resize (1, 1); - retval.elem (0, 0) = 1.0; + retval.elem (0, 0) = true; for (int j = 0; j < nc; j++) { if (elem (0, j) == 0.0) { - retval.elem (0, 0) = 0.0; + retval.elem (0, 0) = false; break; } } @@ -2086,12 +2086,12 @@ else if (nc == 1) { retval.resize (1, 1); - retval.elem (0, 0) = 1.0; + retval.elem (0, 0) = true; for (int i = 0; i < nr; i++) { if (elem (i, 0) == 0.0) { - retval.elem (0, 0) = 0.0; + retval.elem (0, 0) = false; break; } } @@ -2101,12 +2101,12 @@ retval.resize (1, nc); for (int j = 0; j < nc; j++) { - retval.elem (0, j) = 1.0; + retval.elem (0, j) = true; for (int i = 0; i < nr; i++) { if (elem (i, j) == 0.0) { - retval.elem (0, j) = 0.0; + retval.elem (0, j) = false; break; } } @@ -2116,23 +2116,23 @@ return retval; } -Matrix +boolMatrix ComplexMatrix::any (void) const { int nr = rows (); int nc = cols (); - Matrix retval; + boolMatrix retval; if (nr > 0 && nc > 0) { if (nr == 1) { retval.resize (1, 1); - retval.elem (0, 0) = 0.0; + retval.elem (0, 0) = false; for (int j = 0; j < nc; j++) { if (elem (0, j) != 0.0) { - retval.elem (0, 0) = 1.0; + retval.elem (0, 0) = true; break; } } @@ -2140,12 +2140,12 @@ else if (nc == 1) { retval.resize (1, 1); - retval.elem (0, 0) = 0.0; + retval.elem (0, 0) = false; for (int i = 0; i < nr; i++) { if (elem (i, 0) != 0.0) { - retval.elem (0, 0) = 1.0; + retval.elem (0, 0) = true; break; } } @@ -2155,12 +2155,12 @@ retval.resize (1, nc); for (int j = 0; j < nc; j++) { - retval.elem (0, j) = 0.0; + retval.elem (0, j) = false; for (int i = 0; i < nr; i++) { if (elem (i, j) != 0.0) { - retval.elem (0, j) = 1.0; + retval.elem (0, j) = true; break; } }
--- a/liboctave/CMatrix.h Wed Mar 26 04:18:15 1997 +0000 +++ b/liboctave/CMatrix.h Wed Mar 26 05:17:00 1997 +0000 @@ -213,8 +213,8 @@ bool all_integers (double& max_val, double& min_val) const; bool too_large_for_float (void) const; - Matrix all (void) const; - Matrix any (void) const; + boolMatrix all (void) const; + boolMatrix any (void) const; ComplexMatrix cumprod (void) const; ComplexMatrix cumsum (void) const;
--- a/liboctave/ChangeLog Wed Mar 26 04:18:15 1997 +0000 +++ b/liboctave/ChangeLog Wed Mar 26 05:17:00 1997 +0000 @@ -1,5 +1,10 @@ Tue Mar 25 17:37:25 1997 John W. Eaton <jwe@bevo.che.wisc.edu> + * boolMatrix.cc (boolMatrix::all, boolMatrix::any): New functions. + + * dMatrix.cc (Matrix::all, Matrix::any): Return boolMatrix. + * CMatrix.cc (ComplexMatrix::all, ComplexMatrix::any): Likewise. + * idx-vector.h (idx_vector::idx_vector_rep::freeze, idx_vector::freeze): Delete prefer_zero_one arg. * Array-idx.h, Array2-idx.h: Change all callers.
--- a/liboctave/boolMatrix.cc Wed Mar 26 04:18:15 1997 +0000 +++ b/liboctave/boolMatrix.cc Wed Mar 26 05:17:00 1997 +0000 @@ -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++ ***
--- a/liboctave/boolMatrix.h Wed Mar 26 04:18:15 1997 +0000 +++ b/liboctave/boolMatrix.h Wed Mar 26 05:17:00 1997 +0000 @@ -57,6 +57,9 @@ boolMatrix transpose (void) const; + boolMatrix all (void) const; + boolMatrix any (void) const; + #if 0 // i/o
--- a/liboctave/dMatrix.cc Wed Mar 26 04:18:15 1997 +0000 +++ b/liboctave/dMatrix.cc Wed Mar 26 05:17:00 1997 +0000 @@ -1691,23 +1691,23 @@ // cleaned up a bit, no? What about corresponding functions for the // Vectors? -Matrix +boolMatrix Matrix::all (void) const { int nr = rows (); int nc = cols (); - Matrix retval; + boolMatrix retval; if (nr > 0 && nc > 0) { if (nr == 1) { retval.resize (1, 1); - retval.elem (0, 0) = 1.0; + retval.elem (0, 0) = true; for (int j = 0; j < nc; j++) { if (elem (0, j) == 0.0) { - retval.elem (0, 0) = 0.0; + retval.elem (0, 0) = false; break; } } @@ -1715,12 +1715,12 @@ else if (nc == 1) { retval.resize (1, 1); - retval.elem (0, 0) = 1.0; + retval.elem (0, 0) = true; for (int i = 0; i < nr; i++) { if (elem (i, 0) == 0.0) { - retval.elem (0, 0) = 0.0; + retval.elem (0, 0) = false; break; } } @@ -1730,12 +1730,12 @@ retval.resize (1, nc); for (int j = 0; j < nc; j++) { - retval.elem (0, j) = 1.0; + retval.elem (0, j) = true; for (int i = 0; i < nr; i++) { if (elem (i, j) == 0.0) { - retval.elem (0, j) = 0.0; + retval.elem (0, j) = false; break; } } @@ -1745,23 +1745,23 @@ return retval; } -Matrix +boolMatrix Matrix::any (void) const { int nr = rows (); int nc = cols (); - Matrix retval; + boolMatrix retval; if (nr > 0 && nc > 0) { if (nr == 1) { retval.resize (1, 1); - retval.elem (0, 0) = 0.0; + retval.elem (0, 0) = false; for (int j = 0; j < nc; j++) { if (elem (0, j) != 0.0) { - retval.elem (0, 0) = 1.0; + retval.elem (0, 0) = true; break; } } @@ -1769,12 +1769,12 @@ else if (nc == 1) { retval.resize (1, 1); - retval.elem (0, 0) = 0.0; + retval.elem (0, 0) = false; for (int i = 0; i < nr; i++) { if (elem (i, 0) != 0.0) { - retval.elem (0, 0) = 1.0; + retval.elem (0, 0) = true; break; } } @@ -1784,12 +1784,12 @@ retval.resize (1, nc); for (int j = 0; j < nc; j++) { - retval.elem (0, j) = 0.0; + retval.elem (0, j) = false; for (int i = 0; i < nr; i++) { if (elem (i, j) != 0.0) { - retval.elem (0, j) = 1.0; + retval.elem (0, j) = true; break; } }
--- a/liboctave/dMatrix.h Wed Mar 26 04:18:15 1997 +0000 +++ b/liboctave/dMatrix.h Wed Mar 26 05:17:00 1997 +0000 @@ -188,8 +188,8 @@ bool all_integers (double& max_val, double& min_val) const; bool too_large_for_float (void) const; - Matrix all (void) const; - Matrix any (void) const; + boolMatrix all (void) const; + boolMatrix any (void) const; Matrix cumprod (void) const; Matrix cumsum (void) const;
--- a/scripts/miscellaneous/bug_report.m Wed Mar 26 04:18:15 1997 +0000 +++ b/scripts/miscellaneous/bug_report.m Wed Mar 26 05:17:00 1997 +0000 @@ -47,10 +47,10 @@ fclose (prefs); endif - cmd = "octave-bug"; + cmd = strcat (OCTAVE_HOME, "/bin/octave-bug"); if (length (subject) > 0) - cmd = sprintf ("%s/bin/%s -s \"%s\"", __OCTAVE_HOME__, cmd, subject); + cmd = sprintf ("%s -s \"%s\"", cmd, subject); endif if (! isempty (prefs))
--- a/src/ChangeLog Wed Mar 26 04:18:15 1997 +0000 +++ b/src/ChangeLog Wed Mar 26 05:17:00 1997 +0000 @@ -1,5 +1,9 @@ Tue Mar 25 17:17:17 1997 John W. Eaton <jwe@bevo.che.wisc.edu> + * ov-bool-mat.cc (octave_bool_matrix::is_true): Write guts. + + * ov-bool-mat.h (octave_bool_matrix): Implement all() and any(). + * defaults.cc (symbols_of_defaults): DEFCONST OCTAVE_HOME. * toplev.cc (octave_config_info): Delete use of CXXLIBS.