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 <ep19...@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@lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to