configure script to mirror the vendored Hera
headers as forwarding headers in inst/include and
generate Makevars from Makevars.in (via
abs_srcdir) so the upstream <hera/...>
includes resolve without modifying the vendored sources; a
cleanup script then removes these generated artifacts,
keeping them out of version control (see
src/README.md).FOR_R_TDA flag (in
src/Makevars.in) to suppress the upstream
std::cerr/std::cout diagnostics, satisfying
R’s requirement that compiled code not write to stdout/stderr.as_persistence.diagram() would fail when the input was
obtained through do.call(); it now continues without error,
but with empty information about the engine (#58).as_diagram() generic and methods for
persistence and PHom classes, enabling
round-trip conversion back to the diagram class used by {TDA} (#53).as_persistence.diagram() now correctly handles
diagram objects whose Birth and
Death columns appear in a different order, which can occur
with some {TDA} filtrations (#52).TDA::
namespace prefixes and print.progress = FALSE for cleaner
output (#41).NO_LEGACY_NONAPI flag is
set to comply with the R API going forward (#55).This is a new submission to CRAN.
The {phutil} package is intended to be a low-level package for hosting persistence data. It is part of the TDAverse suite of packages, which are designed to provide a collection of packages for enabling machine learning and data science tasks using persistent homology.
The package currently exposes:
persistence
class) for hosting persistence data;data.frame,
tibble, list,
matrix,PHom and diagram
classes);bottleneck_distance()
and wasserstein_distance())
and from a sample of persistence diagrams in a pairwise manner (bottleneck_pairwise_distance()
and wasserstein_pairwise_distance()).Messages, warnings and errors are relayed to the user using the {rlang} package and the {cli} package which are both licensed under the MIT license and with no dependency trail.
Computation of distances is performed using the BSD-licensed Hera C++ library. The code interfacing R and C++ is generated by the header-only {cpp11} package which is MIT-licensed. Computation of pairwise distances is parallelized over the number of pairs using OpenMP.