Added real double SVD capability and began abstracting complex SVD