comparison libinterp/octave-value/ov-base-sparse.h @ 16779:8fce0ed4894a

Specialize is_empty and numel methods for sparse matrices (debian bug #706376) * ov-base.h (virtual bool is_empty (void) const) : Make method virtual * ov-base-sparse.h (bool is_empty (void) const)) : Declare new method (octave_idx_type numel (void) const): New method. * ov-base-sparse.cc (template <class T> bool octave_base_sparse<T>:is_empty (void) const)) : Define new method * ov-bool-sparse.h (idx_vector index_vector (void) const): Start specialization for sparse matrices * lo-array-gripes.cc (void gripe_index_value (void)): Clarify error message * data.cc : Add test to isempty * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep (const Sparse<bool>&) : Fix sparse indexing bug * __sprand_impl__.m : Don't use randparm when there are more than sizemax() elements. * sprand.m, sprandn.m : Add a test for large, low density matrices
author David Bateman <dbateman@free.fr>
date Thu, 20 Jun 2013 02:17:25 +0200
parents 2fc554ffbc28
children 617a6e5a974a
comparison
equal deleted inserted replaced
16778:e205f5ea826a 16779:8fce0ed4894a
70 octave_base_sparse (const octave_base_sparse& a) : 70 octave_base_sparse (const octave_base_sparse& a) :
71 octave_base_value (), matrix (a.matrix), typ (a.typ) { } 71 octave_base_value (), matrix (a.matrix), typ (a.typ) { }
72 72
73 ~octave_base_sparse (void) { } 73 ~octave_base_sparse (void) { }
74 74
75 octave_idx_type numel (void) const { return dims ().safe_numel (); }
76
75 octave_idx_type nnz (void) const { return matrix.nnz (); } 77 octave_idx_type nnz (void) const { return matrix.nnz (); }
76 78
77 octave_idx_type nzmax (void) const { return matrix.nzmax (); } 79 octave_idx_type nzmax (void) const { return matrix.nzmax (); }
78 80
79 size_t byte_size (void) const { return matrix.byte_size (); } 81 size_t byte_size (void) const { return matrix.byte_size (); }
135 137
136 bool is_sparse_type (void) const { return true; } 138 bool is_sparse_type (void) const { return true; }
137 139
138 bool is_defined (void) const { return true; } 140 bool is_defined (void) const { return true; }
139 141
142 bool is_empty (void) const;
143
140 bool is_constant (void) const { return true; } 144 bool is_constant (void) const { return true; }
141 145
142 bool is_true (void) const; 146 bool is_true (void) const;
143 147
144 octave_idx_type capacity (void) const { return matrix.capacity (); } 148 octave_idx_type capacity (void) const { return matrix.capacity (); }