threads argument of
c_weighted_jaccard_sparse() and
c_weighted_jaccard_dense() now defaults to
NULL, applying a package-wide thread policy (respecting
getOption("Ncpus") and OMP_THREAD_LIMIT, else
a conservative 2) rather than a hard-coded 4. Pass
threads = 0 for all cores, or an integer to override. No
new package dependency.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 = NULL applies 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 under
src/vendor/igl and requires RcppEigen; its
bundled Houdini HDK amalgamation is marked a system header (one-line
#pragma) so its third-party compiler warnings do not
surface as install-time R CMD check warnings.Full Changelog: https://github.com/natverse/natcpp/compare/v0.3.1…v0.3.2
libatomic when the C++ atomic
compare/exchange runtime helper is required.src/Makevars.win, since configure is
not run on Windows, and a cleanup script to remove the
src/Makevars generated by configure. The
generated src/Makevars is no longer shipped in the package
sources.Full Changelog: https://github.com/natverse/natcpp/compare/v0.3.0…v0.3.1
c_weighted_jaccard_sparse() returns a sparse similarity
(or distance) matrixc_weighted_jaccard_dense() returns a dense matrix or a
dist-layout vectortriangle= switches between symmetric upper-triangle
output and a full matrixdistance= returns 1 - similaritysrc/Makevars using
$(SHLIB_OPENMP_CXXFLAGS) in place of a GNU make
$(shell ...) callout to
RcppThread::LdFlags()Full Changelog: https://github.com/natverse/natcpp/compare/v0.2…v0.3.0
c_coords21dindex()c_ijkpos()c_sub2ind() to make nat::coord2ind() and
friends much more memory efficientFull Changelog: https://github.com/natverse/natcpp/compare/v0.1.1…v0.2
c_ListofMatrixRows()