mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-14 12:46:00 +08:00
Fix #1974: assertion when reserving an empty sparse matrix
This commit is contained in:
parent
efd72cddcd
commit
94f66fc32e
@ -327,7 +327,8 @@ class SparseMatrix
|
|||||||
m_outerIndex[j] = newOuterIndex[j];
|
m_outerIndex[j] = newOuterIndex[j];
|
||||||
m_innerNonZeros[j] = innerNNZ;
|
m_innerNonZeros[j] = innerNNZ;
|
||||||
}
|
}
|
||||||
m_outerIndex[m_outerSize] = m_outerIndex[m_outerSize-1] + m_innerNonZeros[m_outerSize-1] + reserveSizes[m_outerSize-1];
|
if(m_outerSize>0)
|
||||||
|
m_outerIndex[m_outerSize] = m_outerIndex[m_outerSize-1] + m_innerNonZeros[m_outerSize-1] + reserveSizes[m_outerSize-1];
|
||||||
|
|
||||||
m_data.resize(m_outerIndex[m_outerSize]);
|
m_data.resize(m_outerIndex[m_outerSize]);
|
||||||
}
|
}
|
||||||
|
@ -612,6 +612,14 @@ template<typename SparseMatrixType> void sparse_basic(const SparseMatrixType& re
|
|||||||
iters[0] = IteratorType(m2,0);
|
iters[0] = IteratorType(m2,0);
|
||||||
iters[1] = IteratorType(m2,m2.outerSize()-1);
|
iters[1] = IteratorType(m2,m2.outerSize()-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// test reserve with empty rows/columns
|
||||||
|
{
|
||||||
|
SparseMatrixType m1(0,cols);
|
||||||
|
m1.reserve(ArrayXi::Constant(m1.outerSize(),1));
|
||||||
|
SparseMatrixType m2(rows,0);
|
||||||
|
m2.reserve(ArrayXi::Constant(m2.outerSize(),1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user