On 13 May 2013 at 21:42, Xiao He wrote: | Dear R-Developers, | | I just started learning how to use Rcpp. Earlier while using it, I | encountered an error as shown below: | | file74d8254b96d4.cpp: In function �Rcpp::NumericVector | foo(Rcpp::NumericVector, Rcpp::NumericVector, Rcpp::NumericVector, | Rcpp::Function, Rcpp::Function)�: | file74d8254b96d4.cpp:10: error: invalid operands of types �SEXPREC*� and | �R_len_t� to binary �operator/� | make: *** [file74d8254b96d4.o] Error 1 | | Below is a mock function that can reproduce this error. I wonder if anyone | can tell me what is the problem here. Thank you in advance!! | | foo<-cppFunction(' | NumericVector foo(NumericVector q, NumericVector shape1, NumericVector | shape2, Function pbeta, Function sequence){ | NumericVector output(q.size()); | output=pbeta(sequence(q.size())/q.size(), shape1, shape2); | return output; | } | ')
Really briefly: 1) Wrong mailing list. Rcpp question are to be sent to rcpp-devel 2) Possible error in your function setup. Why do you supply pbeta? What is sequence? 3) Error in how you call pbeta. The first argument is a vector, the other two are scalars. 4) Compiler error is pretty clear for once: it does not understand the division, and you only have one so look there. Here is a minimal working example: library(Rcpp) foo<-cppFunction('NumericVector foo(NumericVector q, double shape1, double shape2){ return pbeta(q, shape1, shape2); }') for which I get R> source('/tmp/foo.R') R> foo(seq(0.1, 0.5, by=0.1), 2, 3) [1] 0.0523 0.1808 0.3483 0.5248 0.6875 Dirk -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com
______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel