using LAPACK SVD