-
Notifications
You must be signed in to change notification settings - Fork 58
Closed
Description
There is an option-dimension mismatch in the rank-local svd
https://github.com/ValeevGroup/tiledarray/blob/master/src/TiledArray/math/linalg/rank-local.cpp#L156
There are two issues here:
- AllVec (
A) should mapUto anMxMmatrix andVTto aNxNmatrix, SomeVec (S) should mapUto anMxKmatrix andVTto aKxNmatrix whereK=std::min(M,N)(see the docs) Neither of these cases are supported entirely (we seem to assume thatM>=N, which is not general), but the current code will likely never to the right thing as the default is AllVec. - The default behaviour should not be AllVec, it should be SomeVec (thin return). This has mainly to do with the fact that ScaLAPACK doesn't support a full return, so if the
TA::svdwrapper is meant to mean the same thing for both rank-local and ScaLAPACK wrappers, the default behaviour has to be the thin-return.
I get that there are cases where you might want the full return, so we should add (an) extra param(s) to allow for flexibility in the case when you want to run a rank-local full-return SVD.
Metadata
Metadata
Assignees
Labels
No labels