adding SVD code to better handle projections when using constraints.