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 <[email protected]> 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 | [email protected] | 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
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel