[Rcpp-devel] matrix indexing
Hello, Motivated by Christophe's question on R-help (cc'ed), I'd like to add facilities for matrix (and maybe arrays) indexing into the new Rcpp api. The classic api already ships matrix indexing through RcppMatrix and RcppMatrixView classes. I'm not a big fan of using round brackets for indexing, but apparently one cannot pass more than one parameter to [] so ... I guess I'll have to sacrifice look and feel for a minute. Anyway I was thinking we can maybe add NumericVector::operator()( int, int) (other vectors as well), so that we can do : NumericVector m(x) ; double x11 = m(0,0) ; I was also thinking maybe making some sort of indexer class to take care of conversion of 2 indices into 1d index; something like this pseudo code : NumericVector m(x) ; NumericVector::MatrixIndexer indexer(m) ; double x11 = m[ indexer(0,0) ] ; But this might be even more ugly than operator(). Given than a REALSXP can change its mind about being a matrix, I'm not sure I want to subclass NumericVector into NumericMatrix, etc. ... Ideas ? Romain
Romain Francois Professional R Enthusiast +33(0) 6 28 91 30 30 http://romainfrancois.blog.free.fr |- http://tr.im/KfKn : Rcpp 0.7.2 |- http://tr.im/JOlc : External pointers with Rcpp `- http://tr.im/JFqa : R Journal, Volume 1/2, December 2009