updated svd()
better array validation
use random state in data generator
tests reuse data generators
user may select svd method