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.