Pseudo inverse instead of SVD