Extended sparse unit-test: nested blocks and InnerIterators.

Block specialization for sparse matrices.
InnerIterators for Blocks and fixes in CoreIterators.
This commit is contained in:
Daniel Gomez Ferro
2008-09-02 15:28:49 +00:00
parent 46fe7a3d9e
commit 8fb1678f0f
10 changed files with 276 additions and 13 deletions

View File

@@ -94,7 +94,7 @@ class SparseMatrix
// ^^ optimization: let's first check if it is the last coefficient
// (very common in high level algorithms)
const int* r = std::lower_bound(&m_data.index(start),&m_data.index(end),inner);
const int* r = std::lower_bound(&m_data.index(start),&m_data.index(end-1),inner);
const int id = r-&m_data.index(0);
return ((*r==inner) && (id<end)) ? m_data.value(id) : Scalar(0);
}
@@ -263,7 +263,7 @@ class SparseMatrix<Scalar,_Flags>::InnerIterator
InnerIterator& operator++() { m_id++; return *this; }
Scalar value() { return m_matrix.m_data.value(m_id); }
Scalar value() const { return m_matrix.m_data.value(m_id); }
int index() const { return m_matrix.m_data.index(m_id); }