8#ifndef IGL_SLICE_CACHED_H 
    9#define IGL_SLICE_CACHED_H 
   11#define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET 
   13#include <Eigen/Sparse> 
   45  template <
typename TX, 
typename TY, 
typename DerivedI>
 
   47    const Eigen::SparseMatrix<TX>& X,
 
   48    const Eigen::Matrix<int,Eigen::Dynamic,1> & R,
 
   49    const Eigen::Matrix<int,Eigen::Dynamic,1> & C,
 
   50    Eigen::MatrixBase<DerivedI>& data,
 
   51    Eigen::SparseMatrix<TY>& Y);
 
   57  template <
typename TX, 
typename TY, 
typename DerivedI>
 
   59    const Eigen::SparseMatrix<TX>& X,
 
   60    const Eigen::MatrixBase<DerivedI>& data,
 
   61    Eigen::SparseMatrix<TY>& Y);
 
   64#ifndef IGL_STATIC_LIBRARY 
   65#  include "slice_cached.cpp" 
#define IGL_INLINE
Definition igl_inline.h:15
 
void slice_cached(const Eigen::SparseMatrix< TX > &X, const Eigen::MatrixBase< DerivedI > &data, Eigen::SparseMatrix< TY > &Y)
Slice X by cached C,R indices into Y.
 
void slice_cached_precompute(const Eigen::SparseMatrix< TX > &X, const Eigen::Matrix< int, Eigen::Dynamic, 1 > &R, const Eigen::Matrix< int, Eigen::Dynamic, 1 > &C, Eigen::MatrixBase< DerivedI > &data, Eigen::SparseMatrix< TY > &Y)
Act like the matlab X(row_indices,col_indices) operator, where row_indices, col_indices are non-negat...