From alireza.s.mahani at gmail.com  Mon Jul 18 17:52:10 2011
From: alireza.s.mahani at gmail.com (Alireza Mahani)
Date: Mon, 18 Jul 2011 08:52:10 -0700 (PDT)
Subject: [Rd] Manipulating single-precision (float) arrays in .Call functions
Message-ID: <1311004330702-3675684.post@n4.nabble.com>

I am writing a wrapper function in C++ that calls a GPU kernel. My array type
for the GPU kernel is float, so I would like my wrapper function to receive
float arrays from R. I understand that I can use 'as.single' in R to copy a
double-precision vector from R in single-precision format while using the
'.C' interface, but is there any way to do something similar for '.Call'?
Given that the latter passes pointers from R to C/C++, I'm guessing this may
be impossible, but I wanted to double-check. If you can suggest a solution,
a small code sample would be much appreciated.

The reason I prefer '.Call' to '.C' is because the former passes pointers
and therefore creates less data transfer overhead as opposed to the latter
which copies data. Is this argument controversial?

-Alireza

--
View this message in context: http://r.789695.n4.nabble.com/Manipulating-single-precision-float-arrays-in-Call-functions-tp3675684p3675684.html
Sent from the R devel mailing list archive at Nabble.com.



[Rd] Manipulating single-precision (float) arrays in .Call functions
Alireza Mahani