arXiv · 1702.08188
dotCall64: An Efficient Interface to Compiled C/C++ and Fortran Code Supporting Long Vectors
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.
Explore related subjects
Keep this discovery
Florian Gerber, Kaspar Mösinger, Reinhard Furrer. 2017-02-27. dotCall64: An Efficient Interface to Compiled C/C++ and Fortran Code Supporting Long Vectors. https://doi.org/10.1016/j.softx.2018.06.002
Cite the original work for its findings. Save a collection to share your selection of sources.