RcppAnnoy is the Rcpp-based R integration of the nifty Annoy library by Erik Bernhardsson. Annoy is a small and lightweight C++ template header library for very fast approximate nearest neighbours—originally developed to drive the Spotify music discovery algorithm.
This release mainly updates the included copy of Annoy to version 1.7.3 which
now provides a C++ namespace in the header API. So I sent a pair of PRs
to uwot to update its
(compiled) use, which James
promptly merged. With that the CRAN update was once again seamless.
Otherwise the package follows current custom by moving away from C++11
as a set compilation standard to be open for more modern C++ idioms.
Here, this allows in particular for possible multithreaded indexing for
which everything needed is in C++17. However, we did not turn
multithreaded indexing on as the RNG use is such that the streams would
differ leading to slightly different (if of course equivalent) results.
Users can enable this by recompiling with the switch flipped, see
Changes in version 0.0.21 (2023-07-02)
The build setup switched from C++11 to C++17 which offers threading support (which remains off by default to ensure consistent results)
Upstream code was update to Annoy 1.17.3, the switch to an explicit C++ namespace has been accomodated (Dirk in #75)
If you like this or other open-source work I do, you can sponsor me at GitHub.