#ifndef IGL_SPEYE_H #define IGL_SPEYE_H #define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET #include namespace igl { // Builds an m by n sparse identity matrix like matlab's speye function // Templates: // T should be a eigen sparse matrix primitive type like int or double // Inputs: // m number of rows // n number of cols // Outputs: // I m by n sparse matrix with 1's on the main diagonal template inline void speye(const int n,const int m, Eigen::SparseMatrix & I); // Builds an n by n sparse identity matrix like matlab's speye function // Templates: // T should be a eigen sparse matrix primitive type like int or double // Inputs: // n number of rows and cols // Outputs: // I n by n sparse matrix with 1's on the main diagonal template inline void speye(const int n, Eigen::SparseMatrix & I); } template inline void igl::speye(const int m, const int n, Eigen::SparseMatrix & I) { // size of diagonal int d = (m(m,n); I.reserve(d); for(int i = 0;i inline void igl::speye(const int n, Eigen::SparseMatrix & I) { return igl::speye(n,n,I); } #endif