<div dir="ltr">My understanding is that `integer64` actually stores its contents in an R numeric vector, so presumedly you should be able to handle this by forcefully casting the contents as you access it, e.g.<div><br></div><div><div>#include <Rcpp.h></div><div>using namespace Rcpp;</div><div><br></div><div>// [[Rcpp::export]]</div><div>NumericVector timesTwo(NumericVector input) {</div><div>  </div><div>  R_xlen_t n = input.size();</div><div>  NumericVector output = no_init(n);</div><div>  </div><div>  long long* pInput  = (long long*) dataptr(input);</div><div>  long long* pOutput = (long long*) dataptr(output);</div><div>  for (R_xlen_t i = 0; i < n; i++)</div><div>    *pOutput++ = *pInput++ * 2;</div><div>  </div><div>  output.attr("class") = "integer64";</div><div>  return output;</div><div>}</div><div><br></div><div>/*** R</div><div>library(bit64)</div><div>object <- as.integer64(1:16)</div><div>timesTwo(object)</div><div>*/</div><div><br></div><div>Note that the use of 'long long' here requires a C++11 compiler, or a C++98 compiler with 'long long' provided as an extension.</div><div><br></div><div>It's not the nicest solution, but at least this should get you started -- just note that you need to create a NumericVector, set the 'integer64' class, and fill it as though it were a vector of 'long long' (64-bit signed integer)s.</div><div><br></div><div>Kevin</div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 11, 2017 at 3:44 PM, David Bellot <span dir="ltr"><<a href="mailto:david.bellot@gmail.com" target="_blank">david.bellot@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:arial,helvetica,sans-serif;font-size:small">Hi,</div><div style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small">it looks like I couldn't find a proper solution, even after googling every where. The question is simple:</div><div style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small">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 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.</div><div style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small">Since Rcpp 0.9.8, there is no more support for the LongVector class. Papers like <a href="http://www.sciencedirect.com/science/article/pii/S0098300416307415" target="_blank">http://www.sciencedirect.<wbr>com/science/article/pii/<wbr>S0098300416307415</a>, despite very interesting, were not very useful to solve my simple problem, so I was wondering if there is a better solution ?</div><div style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small">reinterpret_cast ?</div><div style="font-family:arial,helvetica,sans-serif;font-size:small">GenericVector or RawVector ?</div><div style="font-family:arial,helvetica,sans-serif;font-size:small">Anything so obvious that I just missed it ?</div><div style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small">And of course, same questions in the other direction: how to return my vector back to R and have a bit64 at the end ?</div><div style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small">Thanks for your help,</div><div style="font-family:arial,helvetica,sans-serif;font-size:small">David</div><div style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div></div>
<br>______________________________<wbr>_________________<br>
Rcpp-devel mailing list<br>
<a href="mailto:Rcpp-devel@lists.r-forge.r-project.org">Rcpp-devel@lists.r-forge.r-<wbr>project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel" rel="noreferrer" target="_blank">https://lists.r-forge.r-<wbr>project.org/cgi-bin/mailman/<wbr>listinfo/rcpp-devel</a><br></blockquote></div><br></div></div></div></div>