New user self-registration is currently disabled. Please email eigen-core-team @ if you need an account.
Bug 1236 - [SparseSparseProductWithPruning] Integer overflow in ratioColRes estimation
[SparseSparseProductWithPruning] Integer overflow in ratioColRes estimation
Product: Eigen
Classification: Unclassified
Component: Sparse
x86 - 64-bit All
: Normal Unknown
Assigned To: Nobody
Depends on:
  Show dependency treegraph
Reported: 2016-05-26 10:14 UTC by Jérémie
Modified: 2016-05-26 15:52 UTC (History)
2 users (show)


Description Jérémie 2016-05-26 10:14:24 UTC

On Eigen's latest stable version (3.2.8), I am encountering a signed integer overflow when using Sparse / Sparse products with pruning, namely on the following line:

  double ratioColRes = double(estimated_nnz_prod)/double(lhs.rows()*rhs.cols());

And then the problem reported at the exectution:

  SparseSparseProductWithPruning.h:51:68: runtime error: signed integer overflow: 56224 * 56224 cannot be represented in type 'int [3]'

Now, I don't know what this 'int [3]' means, but this product would fit in a 'long long' or a double, so I guess the overflow could be avoided.
Comment 1 Gael Guennebaud 2016-05-26 15:52:38 UTC
Thanks for the report, I've simply moved the conversion to double before the product.

Note You need to log in before you can comment on or make changes to this bug.