Use SVD decomposition instead of LU