added new Gesvd function

which takes in an integer D for compression purposes

there was a valgrind 'invalid read' error in lapack::gesvd caused by the malloc's of the T* superb. changing this to T* = new T [] removed this message.