Changelog
Source:NEWS.md
natcpp 0.3.2
- the
threadsargument ofc_weighted_jaccard_sparse()andc_weighted_jaccard_dense()now defaults toNULL, applying a package-wide thread policy (respectinggetOption("Ncpus")andOMP_THREAD_LIMIT, else a conservative 2) rather than a hard-coded 4. Passthreads = 0for all cores, or an integer to override. No new package dependency. - add
c_pointsinside(), a robust point-in-mesh test based on the generalised (solid-angle) winding number. Unlike a closest-point signed-distance test it does not depend on surface normals, so it avoids the spurious “outside point classified as inside” results that normal-based tests can give near thin protrusions or sharp features.threads = NULLapplies the package thread policy. -
c_pointsinside(method=)selects the winding-number back end:"bruteforce"is a self-contained O(P*F) test parallelised over points with RcppThread;"bvh"uses libigl’s “Fast Winding Numbers for Soups and Clouds” (Barill et al. 2018), building a bounding-volume hierarchy once and evaluating each query point in O(log F) so it scales to millions of points on large meshes. The default"auto"picks"bvh"for large meshes and"bruteforce"otherwise; the two agree to within the winding-number tolerance. libigl (MPL-2.0) is vendored undersrc/vendor/igland requiresRcppEigen; its bundled Houdini HDK amalgamation is marked a system header (one-line#pragma) so its third-party compiler warnings do not surface as install-timeR CMD checkwarnings.
Full Changelog: https://github.com/natverse/natcpp/compare/v0.3.1…v0.3.2
natcpp 0.3.1
CRAN release: 2026-07-20
- fix package loading on CRAN’s Debian clang r-devel check by conditionally linking
libatomicwhen the C++ atomic compare/exchange runtime helper is required. - add
src/Makevars.win, sinceconfigureis not run on Windows, and acleanupscript to remove thesrc/Makevarsgenerated byconfigure. The generatedsrc/Makevarsis no longer shipped in the package sources.
Full Changelog: https://github.com/natverse/natcpp/compare/v0.3.0…v0.3.1
natcpp 0.3.0
CRAN release: 2026-07-08
- add weighted Jaccard similarity functions for sparse data
-
c_weighted_jaccard_sparse()returns a sparse similarity (or distance) matrix -
c_weighted_jaccard_dense()returns a dense matrix or adist-layout vector - both run in parallel via RcppThread, with an optional progress bar (RcppProgress)
-
triangle=switches between symmetric upper-triangle output and a full matrix -
distance=returns1 - similarity
-
- portable
src/Makevarsusing$(SHLIB_OPENMP_CXXFLAGS)in place of a GNU make$(shell ...)callout toRcppThread::LdFlags()
Full Changelog: https://github.com/natverse/natcpp/compare/v0.2…v0.3.0
natcpp 0.2
CRAN release: 2025-10-14
- add fast coordinate / index conversion functions in https://github.com/natverse/natcpp/pull/2
c_coords21dindex()c_ijkpos()-
c_sub2ind()to makenat::coord2ind()and friends much more memory efficient
Full Changelog: https://github.com/natverse/natcpp/compare/v0.1.1…v0.2
natcpp 0.1.1
- adds
c_ListofMatrixRows()