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
Explore connections, maps & timelines
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.