|Summary:||[SparseSparseProductWithPruning] Integer overflow in ratioColRes estimation|
|Hardware:||x86 - 64-bit|
Description Jérémie 2016-05-26 10:14:24 UTC
Hi, 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 ' Now, I don't know what this 'int ' 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. devel: https://bitbucket.org/eigen/eigen/commits/caa3c3993517/ 3.2: https://bitbucket.org/eigen/eigen/commits/282ed0ab80a9/
Comment 2 Nobody 2019-12-04 15:52:45 UTC
-- GitLab Migration Automatic Message -- This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/1236.