Size limit on lapack matrix?
"Gabriel J. Brostow" <[email protected]>
| Newsgroups | gmane.comp.lib.mtl.devel |
|---|---|
| Message-ID | <[email protected]> |
I can not construct/access elements within a square matrix of size 7242.
I'm not certain, but I suspect this problem isn't just my flawed coding.
I'm using VC++ 6.0 with the native compiler, but expect that's not the
cause either. Is there some fixed limit on matrix-sizes? Does it apply to
both matrix and lapack_matrix?
I am performing SVD of 3D matrices with varying numbers of rows. I just
happen to have one dataset that's a little larger than the rest (~1.5x),
and this causes "Access Violations" in different places. I'm using
mtl-2.1.2-20 with all the appropriate patches.
Below are two variants of the offending code.
// Crash A
int M = 7242;
mtl2lapack::lapack_matrix<double>::type u(M, M); // Crashes here:
// stl's vector allocation dies in _Construct(_T1 _FARQ *_P, const _T2& _V)
// Crash B
int M = 7242;
double* uPtr = new double[M * M];
mtl2lapack::lapack_matrix<double, mtl::external>::type u(uPtr, M, M);
mtl::set_value(u, 0.0); // Crashes here: inside mtl_set.h's
// __set(Matrix A, const T& alpha, fast::count<0>)
and if I don't set_value() and just proceed with the call:
int info = mtl2lapack::gesvd('A', 'A', A, s, u, vt); // vt is 3x3
I get an Access Violation from within dgesvd().
How have others dealt with this before?
Thanks,
-Gabriel J. Brostow
_______________________________________________
This list is archived at http://www.osl.iu.edu/MailArchives/mtl-devel/