mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-23 14:53:13 +08:00
Do not preallocate more space than the matrix size (when the sparse matrix boils down to a vector
This commit is contained in:
parent
d580a90c9a
commit
1f4b24d2df
@ -83,7 +83,7 @@ void assign_sparse_to_sparse(DstXprType &dst, const SrcXprType &src)
|
|||||||
// eval without temporary
|
// eval without temporary
|
||||||
dst.resize(src.rows(), src.cols());
|
dst.resize(src.rows(), src.cols());
|
||||||
dst.setZero();
|
dst.setZero();
|
||||||
dst.reserve((std::max)(src.rows(),src.cols())*2);
|
dst.reserve((std::min)(src.rows()*src.cols(), (std::max)(src.rows(),src.cols())*2));
|
||||||
for (Index j=0; j<outerEvaluationSize; ++j)
|
for (Index j=0; j<outerEvaluationSize; ++j)
|
||||||
{
|
{
|
||||||
dst.startVec(j);
|
dst.startVec(j);
|
||||||
@ -107,7 +107,7 @@ void assign_sparse_to_sparse(DstXprType &dst, const SrcXprType &src)
|
|||||||
|
|
||||||
DstXprType temp(src.rows(), src.cols());
|
DstXprType temp(src.rows(), src.cols());
|
||||||
|
|
||||||
temp.reserve((std::max)(src.rows(),src.cols())*2);
|
temp.reserve((std::min)(src.rows()*src.cols(), (std::max)(src.rows(),src.cols())*2));
|
||||||
for (Index j=0; j<outerEvaluationSize; ++j)
|
for (Index j=0; j<outerEvaluationSize; ++j)
|
||||||
{
|
{
|
||||||
temp.startVec(j);
|
temp.startVec(j);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user