1. add SVD for matrices, wraps around Eigen::JacobiSVD, it's not implemented for
   built-in matrices yet
2. fix an output bug in MatrixMxN
3. fix compiler error in matrices due to the fact that Eigen::inverse does not support
   integer types