In my application, I want to obtain the left singular vectors from a given data matrix with double entries, which is given in the code as
Eigen::MatrixXd m;
and has dimensions 45 x 904140. Now I use the constructor for the SVD decomposition in the Eigen library as below
Eigen::BDCSVD<Eigen::MatrixXd> svd(m, Eigen::ComputeFullU | Eigen::ComputeFullV);
and there, a bad alloc exception is thrown, more precisely:
Unhandled exception at 0x00007FFA058850D8: Microsoft C++ exception: std::bad_alloc at memory location
Vmatrix requires a904140*904140double matrix (which would take almost 6TiB). Do you actually need the fullV, or wouldEigen::ComputeThinVsuffice? - chtzVhas dimension 9044140x45 in this case, right? I would like to use the columns of V to span a subspace of particular size, in my application, 67. That's why I used the full SVD instead, as I would only get a subspace of 45 with thin SVD. - MPB94