Skip to content

Commit

Permalink
64-bit fix. Argh.
Browse files Browse the repository at this point in the history
  • Loading branch information
dsimcha committed Dec 19, 2011
1 parent 9653b9d commit 429f3d5
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions scid/linalg.d
Expand Up @@ -475,15 +475,18 @@ if( isMatrix!Matrix && Matrix.storageOrder == StorageOrder.ColumnMajor ) {
import scid.bindings.lapack.dlapack;

// Find out how big a work array we need.
gesvd( jobType, jobType, m, n, x.data, x.leading, ret.s.data, ret.u.data,
ret.u.leading, ret.vt.data, ret.vt.leading, &nWork, lwork, info
int xlead = to!int(x.leading);
int ulead = to!int(ret.u.leading);
int vlead = to!int(ret.vt.leading);
gesvd( jobType, jobType, m, n, x.data, xlead, ret.s.data, ret.u.data,
ulead, ret.vt.data, vlead, &nWork, lwork, info
);

lwork = to!int( nWork );
auto alloc = newRegionAllocator();
work = alloc.uninitializedArray!( E[] )( lwork ).ptr;
gesvd( jobType, jobType, m, n, x.data, x.leading, ret.s.data, ret.u.data,
ret.u.leading, ret.vt.data, ret.vt.leading, work, lwork, info
gesvd( jobType, jobType, m, n, x.data, xlead, ret.s.data, ret.u.data,
ulead, ret.vt.data, vlead, work, lwork, info
);

enforce(info == 0, "Lapack error in computing SVD: " ~ to!string(info));
Expand Down

0 comments on commit 429f3d5

Please sign in to comment.