Mercurial > hg > octave-thorsten
diff liboctave/Sparse.cc @ 7322:40a17a87155e
[project @ 2007-12-18 21:32:10 by jwe]
author | jwe |
---|---|
date | Tue, 18 Dec 2007 21:34:26 +0000 (2007-12-18) |
parents | df2c3977b0bf |
children | fcc6d853df9e |
line wrap: on
line diff
--- a/liboctave/Sparse.cc +++ b/liboctave/Sparse.cc @@ -1537,7 +1537,7 @@ for (octave_idx_type i = 0; i < n; i++) { if (i % new_nr == 0) - retval.xcidx(i % new_nr) = ic; + retval.xcidx(i / new_nr) = ic; octave_idx_type ii = idx_arg.elem (i); if (ii == 0) @@ -1946,10 +1946,9 @@ start_nodes[ii] = i; else { - struct idx_node inode = nodes[node]; - while (inode.next) - inode = *inode.next; - inode.next = nodes + i; + while (nodes[node].next) + node = nodes[node].next->i; + nodes[node].next = nodes + i; } } @@ -1974,8 +1973,8 @@ while (true) { - if (inode.i >= 0 && - idx_i.elem (inode.i) < nc) + if (idx_i.elem (inode.i) >= 0 && + idx_i.elem (inode.i) < nr) new_nzmx ++; if (inode.next == 0) break; @@ -2011,8 +2010,8 @@ while (true) { - if (inode.i >= 0 && - idx_i.elem (inode.i) < nc) + if (idx_i.elem (inode.i) >= 0 && + idx_i.elem (inode.i) < nr) { X [inode.i] = data (i); retval.xridx (kk++) = inode.i;