[Rcpp-devel] conflict between R_ext/Applic.h and RcppArmadillo.h?
Richard Chandler
richard.chandlers at gmail.com
Thu Mar 1 22:25:33 CET 2012
Hi,
I am trying to call Rdqags (from R_ext/Applic.h) in a C++ program that
uses RcppArmadillo. Everything seems to work fine except the compiler
warns about conflicts. Is there a way to avoid these conflicts? Could
they cause any unforeseen problems? Below is a self-contained example
illustrating the problem. Note that RcppArmadillo is not actually
required in the example, but it is in my program. See below for
sessionInfo().
Thanks,
Richard
library(RcppArmadillo)
library(inline)
# Integrand
inc <- "
#include <R_ext/Applic.h>
void f(double *x, int n, void *ex) {
double *v;
v = (double*)ex;
double sigma = v[0];
for(int i=0; i<n; i++) {
x[i] = exp(-(x[i]*x[i]) / (2*sigma*sigma));
}
}
"
# Compute integral
f <- cxxfunction(signature(sigma_="numeric",
lower_="numeric", upper_="numeric"),
"
double sigma = as<double>(sigma_);
double lower = as<double>(lower_);
double upper = as<double>(upper_);
void *ex;
ex = σ
double epsabs = 0.001;
double epsrel = 0.001;
double result = 0.0;
double abserr = 0.0;
int neval = 0;
int ier = 0;
int limit = 50;
int lenw = 200;
int last = 0;
int iwork = 50;
double work = 200.0;
Rdqags(f, ex, &lower, &upper, &epsabs, &epsrel, &result, &abserr,
&neval, &ier, &limit, &lenw, &last, &iwork, &work);
return Rcpp::List::create(result, abserr, last, ier);
", plugin="RcppArmadillo", includes=inc)
fr <- function(x, sigma=1) exp(-x^2 / (2*sigma*sigma))
sig <- 10
f(sig, 0, 2)
str(integrate(fr, 0, 2, sigma=sig))
> sessionInfo()
R version 2.14.1 (2011-12-22)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] inline_0.3.8 unmarked_0.9-6 RcppArmadillo_0.2.34
[4] Rcpp_0.9.9 lattice_0.20-0 reshape_0.8.4
[7] plyr_1.7.1
loaded via a namespace (and not attached):
[1] grid_2.14.1 tools_2.14.1
More information about the Rcpp-devel
mailing list