Recovered SVD from work, added dot product for double/float types