[Rcpp-devel] problem with devel code (solved)

Romain Francois romain at r-enthusiasts.com
Mon Nov 1 16:46:56 CET 2010


I'm not sure what causes the error on the netbook. Is this a recent 
enough version of Rcpp ?

Also, for the record the code below can now (well with the svn version) 
be written in a more sugary way (See also slide 25 of 
http://slidesha.re/cDIfp0)

SEXP foo( SEXP x ){
   NumericMatrix input( x );
   int nr = input.nrow(), nc = input.ncol();
   NumericMatrix output = clone<NumericMatrix>(input);
   for( int i=1; i<nc; i++)
     output.column(i) =
         output.column(i-1) + input.column(i);
   return output;
}

Romain

Le 31/10/10 23:23, Kaveh Vakili a écrit :
> Thanks for the link Dirk. Actually, your link induced me to try to reproduce the error on a different computer and i could not.
>
> For some reason, the code bugs (repeatedly) on a small atom-based net-book i use to program but not on my other computers (although they all run ubuntu 10.04&  R2.12). Since i do not intend to actually run the code on the netbook, i don't consider this an issue.
>
> Thanks again,
>
> PS: For full reference i post below the error message i get on the netbook
>
> Error in compileCode(f, code, language = language, verbose = verbose) :
>    Compilation ERROR, function(s)/method(s) not created! file4279b57c.cpp: In function ‘SEXPREC* file4279b57c(SEXPREC*)’:
> file4279b57c.cpp:36: error: no match for ‘operator+’ in ‘tmp + Rcpp::Matrix<RTYPE>::column(int) [with int RTYPE = 14](i)’
> /usr/local/lib/R/site-library/Rcpp/include/Rcpp/sugar/operators/plus.h:209: note: candidates are: Rcpp::sugar::Plus_Vector_Primitive<RTYPE, NA, T>  operator+(const Rcpp::VectorBase<RTYPE, LHS_NA, LHS_T>&, typename Rcpp::traits::storage_type<RTYPE>::type) [with int RTYPE = 14, bool NA = true, T = Rcpp::Vector<14>]
> /usr/local/lib/R/site-library/Rcpp/include/Rcpp/complex.h:26: note:                 Rcomplex operator+(const Rcomplex&, const Rcomplex&)
> /usr/local/lib/R/site-library/Rcpp/include/Rcpp/vector/string_proxy.h:228: note:                 std::string Rcpp::internal::operator+(const std::string&, const Rcpp::internal::string_proxy<16>&)
> make: *** [file4279b57c.o] Error 1
>
>
> require( Rcpp )
> require( inline )
>
> f.Rcpp<- cxxfunction( signature( x = "matrix" ), '
>
>       NumericMatrix input( x ) ;
>       NumericMatrix output  = clone<NumericMatrix>( input ) ;
>
>       int nr = input.nrow(), nc = input.ncol() ;
>       NumericVector tmp( nr );
>       for( int i=0; i<nc; i++){
>           tmp = tmp + input.column(i) ;
>           NumericMatrix::Column target( output, i ) ;
>           std::copy( tmp.begin(), tmp.end(), target.begin() ) ;
>       }
>       return output ;
>
> ', plugin = "Rcpp" )
>
> f.R<- function( x ){
>       t(apply(probs, 1, cumsum)) #SLOOOW!
> }
>
>
>
>>
>> On 31 October 2010 at 20:03, Kaveh Vakili wrote:
>> | Hi,
>> |
>> | i tried to inline the code for f.Rcpp found here:
>> |
>> | http://article.gmane.org/gmane.comp.lang.r.rcpp/851/match=matrix+inline
>> |
>> | I get a mysterious bug. I'l not sure what's wrong with the code, can anyone comment ?
>>
>> May I suggest that you read something like
>>
>>        http://www.catb.org/esr/faqs/smart-questions.html
>>
>> as you
>>
>>   - did not show what commands you executed did,
>>
>>   - did not say what you expected,
>>
>>   - did not detail what you got instead,
>>
>>   - and generally did not offer anything here, in particular no information
>>     on which operating system, g++ version, R version, Rcpp version, etc pp.
>>
>> Thanks, Dirk
>>
>> --
>> Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
>>
>>
>
>
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>


-- 
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://bit.ly/czHPM7 : Rcpp Google tech talk on youtube
|- http://bit.ly/9P0eF9 : Google slides
`- http://bit.ly/cVPjPe : Chicago R Meetup slides




More information about the Rcpp-devel mailing list