[Rcpp-devel] passing a bit64 vector to C++ and returning it
Dirk Eddelbuettel
edd at debian.org
Wed Jul 12 01:09:56 CEST 2017
On 11 July 2017 at 23:44, David Bellot wrote:
| it looks like I couldn't find a proper solution, even after googling every
| where. The question is simple:
|
| I have a bit64 vector of integers (timestamps of financial tick data, you
| bet ?) and I want to pass it to a C++ function. The good ol' method is to
| convert it to strings, pass it and cast strings back to 64 bits integers in
Have you seen my 'nanotime' package? It does just that: provide nanosecond
resolution by relying on RcppCCTZ for the parsing/formating and int64 for the
storage.
| C++. And vice and versa when I pass my result back. But the size of my
| vectors are in the range of millions of items, so the method is just a bit
| slow.
You never ever want to format + parse that many vectors. It is too slow.
|
| Since Rcpp 0.9.8, there is no more support for the LongVector class. Papers
| like http://www.sciencedirect.com/science/article/pii/S0098300416307415,
| despite very interesting, were not very useful to solve my simple problem,
| so I was wondering if there is a better solution ?
|
| reinterpret_cast ?
| GenericVector or RawVector ?
| Anything so obvious that I just missed it ?
|
| And of course, same questions in the other direction: how to return my
| vector back to R and have a bit64 at the end ?
As Kevin correctly pointed out, int64 really just "rearranges" the 64 bits in
a double. It is implemeneted as a REALSXP, or for us, a NumericVector.
Poke around those two packages of mine and you should get farther.
Dirk
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the Rcpp-devel
mailing list