Separating SVD and HermitianSVD implementations and adding C wrappers for HermitianSVD