Mercurial > hg > octave-lyh
diff liboctave/CSparse.cc @ 6207:3c92b8d892dd
[project @ 2006-12-06 20:19:14 by dbateman]
author | dbateman |
---|---|
date | Wed, 06 Dec 2006 20:19:16 +0000 |
parents | da5a11b3d13e |
children | 7e958a1532c6 |
line wrap: on
line diff
--- a/liboctave/CSparse.cc +++ b/liboctave/CSparse.cc @@ -180,12 +180,33 @@ octave_idx_type nr = rows (); octave_idx_type nc = cols (); - if (is_square () && nr > 0) + if (nr == nc && nr > 0) { - for (octave_idx_type i = 0; i < nr; i++) - for (octave_idx_type j = i; j < nc; j++) - if (elem (i, j) != conj (elem (j, i))) - return false; + for (octave_idx_type j = 0; j < nc; j++) + { + for (octave_idx_type i = cidx(j); i < cidx(j+1); i++) + { + octave_idx_type ri = ridx(i); + + if (ri != j) + { + bool found = false; + + for (octave_idx_type k = cidx(ri); k < cidx(ri+1); k++) + { + if (ridx(k) == j) + { + if (data(i) == conj(data(k))) + found = true; + break; + } + } + + if (! found) + return false; + } + } + } return true; }