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/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.