[Rcpp-devel] Rcpp sugar for double?

Romain Francois romain at r-enthusiasts.com
Wed Feb 22 16:05:03 CET 2017


Hello, 

Functions in sugar only apply to vectors. 

For a single value, you’d have to use the dnorm function in the R:: namespace: 

// [[Rcpp::export]]
double test6(double x){
  double y = R::dnorm(x,5.0,2.0,true);
  return y;
}

> test6(3)
[1] -2.112086

> dnorm(3, mean = 5, sd = 2, log = TRUE)
[1] -2.112086


Romain


> Le 22 févr. 2017 à 15:58, Eridk Poliruyt <ep19772 at gmail.com> a écrit :
> 
> Hi, I just tried to calculate the density of a normal variable using dnorm. I found that if the input is of type NumericVector, then it was fine. But if the input is of type double, it yielded error in compilation. For example:
> 
>  // [[Rcpp::export]]
> NumericVector test5(NumericVector x)
> {
>   NumericVector y = dnorm(x,5.0,2.0,true);
>   return(y);
> }
> 
> and
> 
> // [[Rcpp::export]]
> double test6(double x)
> {
>   double y = dnorm(x,5.0,2.0,true);
>   return(y);
> }
> 
> May I ask why and how can I calculate this density (and call other common functions like dbeta, dt, beta, gamma, lbeta, lgamma, etc...) on double input?
> 
> Many thanks,
> Eridk
> _______________________________________________
> 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



More information about the Rcpp-devel mailing list