[Rcpp-devel] questions Rcpp
Mounia ZAOUCHE
mounia.zaouche at agroparistech.fr
Fri Sep 14 15:25:40 CEST 2018
Thank you very much for your answers.
Actually, it is really helpful.
Best,
Mounia
De: "edd" <edd at debian.org>
À: "Qiang Kou" <qkou at qkou.info>
Cc: "mounia zaouche" <mounia.zaouche at agroparistech.fr>, "rcpp-devel" <rcpp-devel at lists.r-forge.r-project.org>
Envoyé: Jeudi 13 Septembre 2018 22:55:58
Objet: Re: [Rcpp-devel] questions Rcpp
On 13 September 2018 at 08:51, Qiang Kou wrote:
| Hi, Mounia,
|
| In Rcpp, using std::vector is preferred.
Building on what Qiang said: If your array is a simple double[] then you can
switch to std::vector<double> easily as aligning your array with the internal
array. (Ditto for most other arrays of base types.)
Or conversely, your can use Rcpp and transfer data from R down to C++ code
using a std::vector<double> and then access the address of the initial
element for your pointer. But the better approach is to use std::vector<>
(Or our Rcpp::NumericVector).
One reason is that Rcpp uses the .Call() interface to R, and it does _not_
support plain C pointers. Only the older (and not recommended anymore) .C()
interface does. But then you have to give up all of Rcpp as well ...
| It is still possible to use pointers, however, I am afraid you need to
| write your "as" and "wrap" by yourself. You can find how to develop them in
| our documents.
And as<>() and wrap() are really intended for more complex data structures
and not for pointers to atomistic C types. And yes, you would have work to do
for new types.
Hope this helps, Dirk
| Best,
|
| Qiang Kou
|
| On Thu, Sep 13, 2018 at 4:15 AM Mounia ZAOUCHE <
| mounia.zaouche at agroparistech.fr> wrote:
|
| >
| > Dear all.
| >
| > I write C++ programs and I'm currently trying to interface them with R.
| >
| > I have two issues :
| >
| > Is it possible to interface a function which has an argument that is a
| > pointer (standing for an array) ?
| >
| > I also wrote a function whose aim is to allocate (and fill) an array of
| > values. In this purpose, this function takes as an argument the address of
| > the array to be allocated and is thus typed as a pointer of pointer.
| > Is it possible to handle such a type and to allocate the required memory
| > inside this function interfaced in R?
| >
| > Thank you in advance.
| >
| > Mounia Zaouche.
| >
| > _______________________________________________
| > 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
| _______________________________________________
| 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
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20180914/dabc648b/attachment.html>
More information about the Rcpp-devel
mailing list