I'm working on writing runit tests for the previously-discussed sample, and I just hit my competence threshold dealing with inst/include. As discussed, the (overloaded) sample() functions are to be called only from user C++ code and are thus not exposed to R. This means that the function definitions should go in inst/include, correct?
I don't really know what I'm doing here. If someone could recommend a good reference for namespace control, headers, and R-package specific issues I'd be grateful. Details follow: I'm trying to get the following test function to use RcppArmadillo's definition of sample, and the compiler never finds it: require(Rcpp) cppFunction( code=' IntegerVector sample_int_noprob( IntegerVector x, int size, bool replace) { RNGScope scope; IntegerVector ret = RcppArmadillo::sample(x, size, replace); return ret; }', depends='RcppArmadillo' ) I tried placing the definition of sample in RcppArmadillo/inst/include/sample.h. using namespace Rcpp; template <class T> T sample(const T &x, const int size, const bool replace, NumericVector prob_ = NumericVector(0) ) { // Templated sample -- should work on any Rcpp Vector ... } I've tried to use RcppArmadilloWrap.h as an example, using: namespace Rcpp{ namespace RcppArmadillo{ ... } } best, Christian On Thu, Nov 15, 2012 at 5:35 AM, Dirk Eddelbuettel <e...@debian.org> wrote: > > On 15 November 2012 at 04:00, Christian Gunning wrote: > | | Also, you may need to add RNGScope() if you use R's RNG. > | | > | | > | | > | | Yes, I should have mentioned that in my post. Calling RNGScope() is > left > | to > | | the user, since multiple calls to sample() can conceivably happen > inside > | a > | | single RNGScope(). > | > | With that, maybe best to be included as another example in > RcppArmadillo ? > | > | > | Why? The proposed behavior is the same as sugar's rnorm, etc.: a utility > | function that uses R's RNG -- it's the > | user's responsibility to properly scope the RNG. > > Fair point. > > | When time permits, I'll add Romain's comments on sugarizing sample (which I > | *think* I understand), along with some testing code. > > Excellent plan. > > Dirk > > -- > Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com > > -- A man, a plan, a cat, a ham, a yak, a yam, a hat, a canal – Panama! _______________________________________________ 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