# HG changeset patch # User Jaroslav Hajek # Date 1270023897 -7200 # Node ID 19e1e4470e01a3481c8ca5efa28a022a3f23dcde # Parent ded9beac75822d5dc9f13a1ba028ec6ec586b623 remove old sparse assembly ctors diff --git a/liboctave/CSparse.h b/liboctave/CSparse.h --- a/liboctave/CSparse.h +++ b/liboctave/CSparse.h @@ -78,17 +78,6 @@ explicit SparseComplexMatrix (const ComplexNDArray& a) : MSparse (a) { } - explicit SparseComplexMatrix (const Array a, const Array& r, - const Array& c, octave_idx_type nr = -1, - octave_idx_type nc = -1, bool sum_terms = true) - : MSparse (a, r, c, nr, nc, sum_terms) { } - - explicit SparseComplexMatrix (const Array a, - const Array& r, - const Array& c, octave_idx_type nr = -1, - octave_idx_type nc = -1, bool sum_terms = true) - : MSparse (a, r, c, nr, nc, sum_terms) { } - SparseComplexMatrix (const Array& a, const idx_vector& r, const idx_vector& c, octave_idx_type nr = -1, octave_idx_type nc = -1, bool sum_terms = true) diff --git a/liboctave/ChangeLog b/liboctave/ChangeLog --- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,15 @@ +2010-03-31 Jaroslav Hajek + + * Sparse.cc (Sparse::Sparse (const Array&, + const Array&, ...), Sparse::Sparse (const Array&, + const Array&, ...)): + Remove old constructors. + * Sparse.h: Ditto. + * MSparse.h: Ditto. + * dSparse.h: Ditto. + * CSparse.h: Ditto. + * boolSparse.h: Ditto. + 2010-03-31 Jaroslav Hajek * idx-vector.cc (idx_vector::idx_range_rep::as_array): Fix typo. diff --git a/liboctave/MSparse.h b/liboctave/MSparse.h --- a/liboctave/MSparse.h +++ b/liboctave/MSparse.h @@ -55,16 +55,6 @@ MSparse (const Sparse& a) : Sparse (a) { } - MSparse (const Array a, const Array& r, - const Array& c, octave_idx_type nr = -1, - octave_idx_type nc = -1, bool sum_terms = true) - : Sparse (a, r, c, nr, nc, sum_terms) { } - - MSparse (const Array a, const Array& r, - const Array& c, octave_idx_type nr = -1, - octave_idx_type nc = -1, bool sum_terms = true) - : Sparse (a, r, c, nr, nc, sum_terms) { } - MSparse (const Array& a, const idx_vector& r, const idx_vector& c, octave_idx_type nr = -1, octave_idx_type nc = -1, bool sum_terms = true) : Sparse (a, r, c, nr, nc, sum_terms) { } diff --git a/liboctave/Sparse.cc b/liboctave/Sparse.cc --- a/liboctave/Sparse.cc +++ b/liboctave/Sparse.cc @@ -316,242 +316,6 @@ } template -Sparse::Sparse (const Array& a, const Array& r, - const Array& c, octave_idx_type nr, - octave_idx_type nc, bool sum_terms) - : dimensions (dim_vector (nr, nc)), idx (0), idx_count (0) -{ - octave_idx_type a_len = a.length (); - octave_idx_type r_len = r.length (); - octave_idx_type c_len = c.length (); - bool ri_scalar = (r_len == 1); - bool ci_scalar = (c_len == 1); - bool cf_scalar = (a_len == 1); - - if ((a_len != r_len && !cf_scalar && !ri_scalar) || - (a_len != c_len && !cf_scalar && !ci_scalar) || - (r_len != c_len && !ri_scalar && !ci_scalar) || nr < 0 || nc < 0) - { - (*current_liboctave_error_handler) - ("Sparse::Sparse (const Array&, const Array&, ...): dimension mismatch"); - rep = nil_rep (); - dimensions = dim_vector (0, 0); - } - else - { - octave_idx_type max_nzmx = (r_len > c_len ? r_len : c_len); - - OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl *, sidx, max_nzmx); - OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl, sidxX, max_nzmx); - - for (octave_idx_type i = 0; i < max_nzmx; i++) - sidx[i] = &sidxX[i]; - - octave_idx_type actual_nzmx = 0; - octave_quit (); - for (octave_idx_type i = 0; i < max_nzmx; i++) - { - octave_idx_type rowidx = (ri_scalar ? r(0) : r(i)); - octave_idx_type colidx = (ci_scalar ? c(0) : c(i)); - if (rowidx < nr && rowidx >= 0 && - colidx < nc && colidx >= 0 ) - { - if ( a (cf_scalar ? 0 : i ) != T ()) - { - sidx[actual_nzmx]->r = rowidx; - sidx[actual_nzmx]->c = colidx; - sidx[actual_nzmx]->idx = i; - actual_nzmx++; - } - } - else - { - (*current_liboctave_error_handler) - ("Sparse::Sparse : index (%d,%d) out of range", - rowidx + 1, colidx + 1); - rep = nil_rep (); - dimensions = dim_vector (0, 0); - return; - } - } - - if (actual_nzmx == 0) - rep = new typename Sparse::SparseRep (nr, nc); - else - { - octave_quit (); - octave_sort - lsort (octave_sparse_sidxl_comp); - - lsort.sort (sidx, actual_nzmx); - octave_quit (); - - // Now count the unique non-zero values - octave_idx_type real_nzmx = 1; - for (octave_idx_type i = 1; i < actual_nzmx; i++) - if (sidx[i-1]->r != sidx[i]->r || sidx[i-1]->c != sidx[i]->c) - real_nzmx++; - - rep = new typename Sparse::SparseRep (nr, nc, real_nzmx); - - octave_idx_type cx = 0; - octave_idx_type prev_rval = -1; - octave_idx_type prev_cval = -1; - octave_idx_type ii = -1; - xcidx (0) = 0; - for (octave_idx_type i = 0; i < actual_nzmx; i++) - { - octave_quit (); - octave_idx_type iidx = sidx[i]->idx; - octave_idx_type rval = sidx[i]->r; - octave_idx_type cval = sidx[i]->c; - - if (prev_cval < cval || (prev_rval < rval && prev_cval == cval)) - { - octave_idx_type ci = static_cast (c (ci_scalar ? 0 : iidx)); - ii++; - while (cx < ci) - xcidx (++cx) = ii; - xdata(ii) = a (cf_scalar ? 0 : iidx); - xridx(ii) = static_cast (r (ri_scalar ? 0 : iidx)); - } - else - { - if (sum_terms) - xdata(ii) += a (cf_scalar ? 0 : iidx); - else - xdata(ii) = a (cf_scalar ? 0 : iidx); - } - prev_rval = rval; - prev_cval = cval; - } - - while (cx < nc) - xcidx (++cx) = ii + 1; - } - } -} - -template -Sparse::Sparse (const Array& a, const Array& r, - const Array& c, octave_idx_type nr, - octave_idx_type nc, bool sum_terms) - : dimensions (dim_vector (nr, nc)), idx (0), idx_count (0) -{ - octave_idx_type a_len = a.length (); - octave_idx_type r_len = r.length (); - octave_idx_type c_len = c.length (); - bool ri_scalar = (r_len == 1); - bool ci_scalar = (c_len == 1); - bool cf_scalar = (a_len == 1); - - if ((a_len != r_len && !cf_scalar && !ri_scalar) || - (a_len != c_len && !cf_scalar && !ci_scalar) || - (r_len != c_len && !ri_scalar && !ci_scalar) || nr < 0 || nc < 0) - { - (*current_liboctave_error_handler) - ("Sparse::Sparse (const Array&, const Array&, ...): dimension mismatch"); - rep = nil_rep (); - dimensions = dim_vector (0, 0); - } - else - { - octave_idx_type max_nzmx = (r_len > c_len ? r_len : c_len); - - OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl *, sidx, max_nzmx); - OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl, sidxX, max_nzmx); - - for (octave_idx_type i = 0; i < max_nzmx; i++) - sidx[i] = &sidxX[i]; - - octave_idx_type actual_nzmx = 0; - octave_quit (); - - for (octave_idx_type i = 0; i < max_nzmx; i++) - { - octave_idx_type rowidx = static_cast (ri_scalar ? r(0) : r(i)); - octave_idx_type colidx = static_cast (ci_scalar ? c(0) : c(i)); - if (rowidx < nr && rowidx >= 0 && - colidx < nc && colidx >= 0 ) - { - if ( a (cf_scalar ? 0 : i ) != T ()) - { - sidx[actual_nzmx]->r = rowidx; - sidx[actual_nzmx]->c = colidx; - sidx[actual_nzmx]->idx = i; - actual_nzmx++; - } - } - else - { - (*current_liboctave_error_handler) - ("Sparse::Sparse : index (%d,%d) out of range", - rowidx + 1, colidx + 1); - rep = nil_rep (); - dimensions = dim_vector (0, 0); - return; - } - } - - if (actual_nzmx == 0) - rep = new typename Sparse::SparseRep (nr, nc); - else - { - octave_quit (); - octave_sort - lsort (octave_sparse_sidxl_comp); - - lsort.sort (sidx, actual_nzmx); - octave_quit (); - - // Now count the unique non-zero values - octave_idx_type real_nzmx = 1; - for (octave_idx_type i = 1; i < actual_nzmx; i++) - if (sidx[i-1]->r != sidx[i]->r || sidx[i-1]->c != sidx[i]->c) - real_nzmx++; - - rep = new typename Sparse::SparseRep (nr, nc, real_nzmx); - - octave_idx_type cx = 0; - octave_idx_type prev_rval = -1; - octave_idx_type prev_cval = -1; - octave_idx_type ii = -1; - xcidx (0) = 0; - for (octave_idx_type i = 0; i < actual_nzmx; i++) - { - octave_quit (); - octave_idx_type iidx = sidx[i]->idx; - octave_idx_type rval = sidx[i]->r; - octave_idx_type cval = sidx[i]->c; - - if (prev_cval < cval || (prev_rval < rval && prev_cval == cval)) - { - octave_idx_type ci = static_cast (c (ci_scalar ? 0 : iidx)); - ii++; - - while (cx < ci) - xcidx (++cx) = ii; - xdata(ii) = a (cf_scalar ? 0 : iidx); - xridx(ii) = static_cast (r (ri_scalar ? 0 : iidx)); - } - else - { - if (sum_terms) - xdata(ii) += a (cf_scalar ? 0 : iidx); - else - xdata(ii) = a (cf_scalar ? 0 : iidx); - } - prev_rval = rval; - prev_cval = cval; - } - - while (cx < nc) - xcidx (++cx) = ii + 1; - } - } -} - -template Sparse::Sparse (const Array& a, const idx_vector& r, const idx_vector& c, octave_idx_type nr, octave_idx_type nc, bool sum_terms) diff --git a/liboctave/Sparse.h b/liboctave/Sparse.h --- a/liboctave/Sparse.h +++ b/liboctave/Sparse.h @@ -217,12 +217,6 @@ Sparse (const Sparse& a, const dim_vector& dv); - Sparse (const Array& a, const Array& r, const Array& c, - octave_idx_type nr, octave_idx_type nc, bool sum_terms); - - Sparse (const Array& a, const Array& r, const Array& c, - octave_idx_type nr, octave_idx_type nc, bool sum_terms); - Sparse (const Array& a, const idx_vector& r, const idx_vector& c, octave_idx_type nr = -1, octave_idx_type nc = -1, bool sum_terms = true); diff --git a/liboctave/boolSparse.h b/liboctave/boolSparse.h --- a/liboctave/boolSparse.h +++ b/liboctave/boolSparse.h @@ -55,16 +55,6 @@ explicit SparseBoolMatrix (const boolNDArray& a) : Sparse (a) { } - explicit SparseBoolMatrix (const Array a, const Array& r, - const Array& c, octave_idx_type nr = -1, - octave_idx_type nc = -1, bool sum_terms = true) - : Sparse (a, r, c, nr, nc, sum_terms) { } - - explicit SparseBoolMatrix (const Array a, const Array& r, - const Array& c, octave_idx_type nr = -1, - octave_idx_type nc = -1, bool sum_terms = true) - : Sparse (a, r, c, nr, nc, sum_terms) { } - SparseBoolMatrix (const Array& a, const idx_vector& r, const idx_vector& c, octave_idx_type nr = -1, octave_idx_type nc = -1, bool sum_terms = true) diff --git a/liboctave/dSparse.h b/liboctave/dSparse.h --- a/liboctave/dSparse.h +++ b/liboctave/dSparse.h @@ -72,16 +72,6 @@ explicit SparseMatrix (const NDArray& a) : MSparse (a) { } - explicit SparseMatrix (const Array a, const Array& r, - const Array& c, octave_idx_type nr = -1, - octave_idx_type nc = -1, bool sum_terms = true) - : MSparse (a, r, c, nr, nc, sum_terms) { } - - explicit SparseMatrix (const Array a, const Array& r, - const Array& c, octave_idx_type nr = -1, - octave_idx_type nc = -1, bool sum_terms = true) - : MSparse (a, r, c, nr, nc, sum_terms) { } - SparseMatrix (const Array& a, const idx_vector& r, const idx_vector& c, octave_idx_type nr = -1, octave_idx_type nc = -1, bool sum_terms = true)