IGL_INLINE void igl::find( const Eigen::SparseMatrix<T>& X, Eigen::DenseBase<DerivedI> & I, Eigen::DenseBase<DerivedJ> & J, Eigen::DenseBase<DerivedV> & V) { // Resize outputs to fit nonzeros I.derived().resize(X.nonZeros(),1); J.derived().resize(X.nonZeros(),1); V.derived().resize(X.nonZeros(),1); int i = 0; // Iterate over outside for(int k=0; k<X.outerSize(); ++k) { // Iterate over inside for(typename Eigen::SparseMatrix<T>::InnerIterator it (X,k); it; ++it) { V(i) = it.value(); I(i) = it.row(); J(i) = it.col(); i++; } } }
static inline bool allFinite(const Eigen::DenseBase<Derived> &d) { const Derived t = (d.derived()-d.derived()); return ((t.derived().array()==t.derived().array()).all()); }