[Rcpp-devel] NumericVector Double mismatch when indexing an array
Steve Lianoglou
mailinglist.honeypot at gmail.com
Tue Sep 25 22:50:56 CEST 2012
Hi,
On Tue, Sep 25, 2012 at 4:41 PM, Dirk Eddelbuettel <edd at debian.org> wrote:
>
> On 25 September 2012 at 13:53, Rodney Sparapani wrote:
> | You just need an explicit type conversion like so:
> |
> | funk2 <- cxxfunction(body='RNGScope scope;
> | NumericVector rn(5);
> | for (int i=0; i < 5; i++) rn[i] = as<double>(rnorm(1,0,1));
> | return wrap(rn);',
> | includes="using namespace Rcpp;\n", plugin="Rcpp")
> |
> | funk2()
>
> In the interest of constructive criticism, my version (and I must posted
> essentially the same maybe ten times already on this very list):
>
> R> f3 <- cxxfunction(signature(), plugin="Rcpp", body='
> + RNGScope scope;
> + NumericVector rn = Rcpp::rnorm(5,0,1);
> + return wrap(rn);
> + ')
> R> f3()
> [1] -0.837983 -0.706765 0.551781 0.662024 0.495562
> R>
>
> Changes:
>
> -- no 'using namespace Rcpp;' as inline already does it; I still don't use
> it as I prefer to be explicit about provenance of functions and objects
Check
> -- no loop (as Doug said) --- rnorm() is a sugar functions and vectorised
Roger that
> -- no wrap, we already have an Rcpp vector for which wrap is implicit
Woops!... we know, though ... "do as I say not as I do" and all that
jazz ... ;-)
-steve
--
Steve Lianoglou
Graduate Student: Computational Systems Biology
| Memorial Sloan-Kettering Cancer Center
| Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact
More information about the Rcpp-devel
mailing list