Sparse matrix column/row removal

Reference issue

Fixes #2659 (closed)

What does this implement/fix?

Adds two functions SparseMatrix::removeOuterVectors(start, num) and SparseMatrix::insertEmptyOuterVectors(start, num) to remove/add num contiguous outer vectors starting at start. If the first vector is not empty and it is removed, then m_outerIndex[0] != 0, which in theory shouldn't be an issue. However, I am not confident that every sparse matrix function can handle m_outerIndex[0] != 0. For this reason, and because its relatively inexpensive to address, I explicitly handle this case and shift the data so that m_outerIndex[0] == 0.

Additional information

Merge request reports

Loading