|
Boost : |
From: Kasper Peeters (kasper.peeters_at_[hidden])
Date: 2004-10-05 03:37:34
Hi,
I need to handle extremely large sparse matrices, of approximately
half a million square elements (with, typically, on the order of 5
million non-zero entries).
The following, however, fails on a machine where std::size_t is 4
bytes long:
#include <boost/numeric/ublas/matrix_sparse.hpp>
int main () {
using namespace boost::numeric::ublas;
sparse_matrix<double> m(400000, 400000);
}
It fails with
Assertion failed in file
boost/numeric/ublas/functional.hpp at line 1345:
(size1 * size2) / size1 == size2
Obviously, while both size1 and size2 fit in a 4-byte integer, the
product does not, the calculation overflows, and this check fails.
Can this problem be circumvented without modifying boost?
Kasper
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk