dotCall64: An Efficient Interface to Compiled C/C++ and Fortran Code Supporting Long Vectors
Computation
2018-08-20 v1
Abstract
The R functions .C() and .Fortran() can be used to call compiled C/C++ and Fortran code from R. This so-called foreign function interface is convenient, since it does not require any interactions with the C API of R. However, it does not support long vectors (i.e., vectors of more than 2^31 elements). To overcome this limitation, the R package dotCall64 provides .C64(), which can be used to call compiled C/C++ and Fortran functions. It transparently supports long vectors and does the necessary castings to pass numeric R vectors to 64-bit integer arguments of the compiled code. Moreover, .C64() features a mechanism to avoid unnecessary copies of function arguments, making it efficient in terms of speed and memory usage.
Cite
@article{arxiv.1702.08188,
title = {dotCall64: An Efficient Interface to Compiled C/C++ and Fortran Code Supporting Long Vectors},
author = {Florian Gerber and Kaspar Mösinger and Reinhard Furrer},
journal= {arXiv preprint arXiv:1702.08188},
year = {2018}
}
Comments
17 pages