replace nnls computation with Eigen SVD and matrices