[Rcpp-devel] clarification of interaction between RInside and RcppEigen

Stephen J. Barr stephenjbarr at gmail.com
Tue Aug 7 20:32:08 CEST 2012


Thank you Dirk and also Douglas. This definitely helps. I think I can get
this going. Thank you so much for the quick replies.

Best,
Stephen

On Tue, Aug 7, 2012 at 11:29 AM, Dirk Eddelbuettel <edd at debian.org> wrote:

>
> Hi Stephen,
>
> On 7 August 2012 at 10:55, Stephen J. Barr wrote:
> | Greetings,
> |
> | I am new to Rcpp, RInside and the entire family of related packages. I am
> | experienced with R and also C++ using Eigen but I have never combined
> the two
> | before.
>
> You are in a good starting position.
>
> | I would like to create a matrix using R and then play with it using
> | Eigen. From what I have read so far, it seems like I can use RInside to
> create
> | an Rcpp::NumericMatrix.
>
> That works. Even one of the very oldest examples (rinside_sample1.cpp) does
> something related with a Rcpp::NumericMatrix (eg creates one and passes it
> around).
>
> | My question is this: to transform a matrix from a Rcpp::NumericMatrix to
> an
> | Eigen MatrixXd, do I use RcppEigen? Or is RcppEigen only for calling
> C++/Eigen
> | from R and not the other way around?
>
> I think I have an idea as to what you are asking. I think it may help to
> step
> back for a second and try to imagine the big picture:
>
> a) Rcpp helps us with the interface defined by .Call:
>
>      SEXP .Call(string somefuncname, SEXP arg1, SEXP arg2, ...)
>
>    so everthing going in and out is a SEXP type.
>
> b) RInside lets you interchange with an embedded R process, again talking
>    SEXPs.
>
> c) Packages like RcppEigen provide wrappers to and from SEXPs.
>
> So if you don't need a Rcpp::NumericMatrix, don't create one.  Create an
> Eigen matrix, and use RcppEigen's wrappers to pass it throught the SEXP
> interfaces.  That should work just fine with RInside as well.
>
> You will have to expand the RInside Makefile to point to the RcppEigen
> headers as well, and then it should just work.
>
> Hope this helps,  Dirk
>
>
> | Thanks,
> | Stephen
> |
> | ----------------------------------------------------------------------
> | _______________________________________________
> | Rcpp-devel mailing list
> | Rcpp-devel at lists.r-forge.r-project.org
> | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
> --
> Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20120807/d0941f5f/attachment.html>


More information about the Rcpp-devel mailing list