using gesvd since its the same as gesdd when jobz is set to N
doubled size of work.  not sure how that will affect the code