{
  "_id": "6ac6c850de46216d5edcd3fb",
  "Package": "phutil",
  "Title": "Persistence Homology Utilities",
  "Version": "0.0.3.9000",
  "Authors@R": "c(\nperson(\"Aymeric\", \"Stamm\", , \"aymeric.stamm@cnrs.fr\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-8725-3654\")),\nperson(\"Jason Cory\", \"Brunson\", , \"cornelioid@gmail.com\", role = \"aut\",\ncomment = c(ORCID = \"0000-0003-3126-9494\")),\nperson(\"Michael\", \"Kerber\", role = \"ctb\", comment = \"HERA C++ code\"),\nperson(\"Dmitriy\", \"Morozov\", role = \"ctb\", comment = \"HERA C++ code\"),\nperson(\"Arnur\", \"Nigmetov\", role = \"ctb\", comment = \"HERA C++ code\")\n)",
  "Description": "A low-level package for hosting persistence data. It is\npart of the 'TDAverse' suite of packages, which is designed to\nprovide a collection of packages for enabling machine learning\nand data science tasks using persistent homology. Implements a\nclass for hosting persistence data, a number of coercers from\nand to already existing and used data structures from other\npackages and functions to compute distances between persistence\ndiagrams. A formal definition and study of bottleneck and\nWasserstein distances can be found in Bubenik, Scott and\nStanley (2023) <doi:10.1007/s41468-022-00103-8>. Their\nimplementation in 'phutil' relies on the 'C++' Hera library\ndeveloped by Kerber, Morozov and Nigmetov (2017)\n<doi:10.1145/3064175>.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/tdaverse/phutil,\nhttps://tdaverse.github.io/phutil/",
  "BugReports": "https://github.com/tdaverse/phutil/issues",
  "VignetteBuilder": "quarto",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "Roxygen": "list(markdown = TRUE)",
  "Config/roxygen2/version": "8.1.0",
  "Repository": "https://tdaverse.r-universe.dev",
  "Date/Publication": "2026-10-07 20:25:44 UTC",
  "RemoteUrl": "https://github.com/tdaverse/phutil",
  "RemoteRef": "HEAD",
  "RemoteSha": "39d259f99a99d5559babf6463314e23bbe8b8b54",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-07 22:21:11 UTC",
    "User": "root"
  },
  "Author": "Aymeric Stamm [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-8725-3654>),\nJason Cory Brunson [aut] (ORCID:\n<https://orcid.org/0000-0003-3126-9494>),\nMichael Kerber [ctb] (HERA C++ code),\nDmitriy Morozov [ctb] (HERA C++ code),\nArnur Nigmetov [ctb] (HERA C++ code)",
  "Maintainer": "Aymeric Stamm <aymeric.stamm@cnrs.fr>",
  "_user": "tdaverse",
  "_type": "src",
  "_file": "phutil_0.0.3.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/54920a358ca0975c65a89b03662236fdeeb753890bdaf208e49563de0163cb76",
  "_filesize": 627220,
  "_sha256": "54920a358ca0975c65a89b03662236fdeeb753890bdaf208e49563de0163cb76",
  "_expires": "2027-01-15T22:31:42.000Z",
  "_created": "2026-10-07T22:21:11.000Z",
  "_published": "2026-10-07T22:31:44.486Z",
  "_buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 113046691667,
      "time": 152,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11515377096"
    },
    {
      "job": 113046691738,
      "time": 151,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11515556477"
    },
    {
      "job": 113046691568,
      "time": 115,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11514968233"
    },
    {
      "job": 113046691542,
      "time": 178,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11515412041"
    },
    {
      "job": 113046691626,
      "time": 180,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11514868519"
    },
    {
      "job": 113046691656,
      "time": 248,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11515019458"
    },
    {
      "job": 113046691634,
      "time": 192,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11515746831"
    },
    {
      "job": 113046691696,
      "time": 244,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11515058689"
    },
    {
      "job": 113045362172,
      "time": 218,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11514837926"
    },
    {
      "job": 113046691419,
      "time": 116,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11516030414"
    },
    {
      "job": 113046691830,
      "time": 389,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11514733964"
    },
    {
      "job": 113046691605,
      "time": 287,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11515123111"
    },
    {
      "job": 113046691749,
      "time": 157,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11514623877"
    },
    {
      "job": 113046691772,
      "time": 364,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11514978958"
    },
    {
      "job": 113046691674,
      "time": 145,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11514753715"
    }
  ],
  "_upstream": "https://github.com/tdaverse/phutil",
  "_commit": {
    "id": "39d259f99a99d5559babf6463314e23bbe8b8b54",
    "author": "Aymeric Stamm <aymeric.stamm@cnrs.fr>",
    "committer": "Aymeric Stamm <aymeric.stamm@cnrs.fr>",
    "message": "Increment version number to 0.0.3.9000\n",
    "time": 1791404744
  },
  "_maintainer": {
    "name": "Aymeric Stamm",
    "email": "aymeric.stamm@cnrs.fr",
    "login": "astamm",
    "mastodon": "@aymeric_stamm@mastodon.social",
    "bluesky": "@aymeric-stamm.bsky.social",
    "orcid": "0000-0002-8725-3654",
    "description": "",
    "uuid": 6044838
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5",
      "role": "Depends"
    },
    {
      "package": "BH",
      "role": "LinkingTo"
    },
    {
      "package": "cpp11",
      "role": "LinkingTo"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "microbenchmark",
      "role": "Suggests"
    },
    {
      "package": "quarto",
      "role": "Suggests"
    },
    {
      "package": "TDA",
      "role": "Suggests"
    },
    {
      "package": "tdaunif",
      "role": "Suggests"
    },
    {
      "package": "tinysnapshot",
      "role": "Suggests"
    },
    {
      "package": "tinytest",
      "role": "Suggests"
    }
  ],
  "_owner": "tdaverse",
  "_selfowned": true,
  "_usedby": 2,
  "_updates": [
    {
      "week": "2026-16",
      "n": 7
    },
    {
      "week": "2026-28",
      "n": 2
    },
    {
      "week": "2026-41",
      "n": 8
    }
  ],
  "_tags": [
    {
      "name": "v0.0.2",
      "date": "2026-04-14"
    },
    {
      "name": "v0.0.3",
      "date": "2026-10-06"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "astamm",
      "count": 202,
      "uuid": 6044838
    },
    {
      "user": "corybrunson",
      "count": 54,
      "uuid": 7768027
    },
    {
      "user": "a1danbryant",
      "count": 11,
      "uuid": 124316415
    }
  ],
  "_userbio": {
    "uuid": 74478337,
    "type": "organization",
    "name": "tdaverse",
    "followers": 14,
    "description": "an inceptive R package collection for computational topology and topological data analysis"
  },
  "_downloads": {
    "count": 398,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/phutil"
  },
  "_devurl": "https://github.com/tdaverse/phutil",
  "_pkgdown": "https://tdaverse.github.io/phutil/",
  "_searchresults": 32,
  "_quarto": true,
  "_topics": [
    "quarto",
    "cpp",
    "openmp"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/phutil.html",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/tdaverse/phutil",
  "_realowner": "tdaverse",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.0.1",
      "date": "2025-05-15"
    },
    {
      "version": "0.0.2",
      "date": "2026-04-17"
    },
    {
      "version": "0.0.3",
      "date": "2026-10-06"
    }
  ],
  "_exports": [
    "as_diagram",
    "as_persistence",
    "as_persistence_set",
    "bottleneck_distance",
    "bottleneck_pairwise_distances",
    "get_pairs",
    "kantorovich_distance",
    "kantorovich_pairwise_distances",
    "wasserstein_distance",
    "wasserstein_pairwise_distances"
  ],
  "_datasets": [
    {
      "name": "arch_spirals",
      "title": "A sample of persistence diagrams from the arch spiral",
      "object": "arch_spirals",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "noisy_circle_points",
      "title": "Toy Data: Noisy circle",
      "object": "noisy_circle_points",
      "class": [
        "matrix",
        "array"
      ],
      "fields": [
        "x",
        "y"
      ],
      "rows": 100,
      "table": true,
      "tojson": true
    },
    {
      "name": "noisy_circle_ripserr",
      "title": "Toy Data: Noisy circle",
      "object": "noisy_circle_ripserr",
      "class": [
        "PHom",
        "data.frame"
      ],
      "fields": [
        "dimension",
        "birth",
        "death"
      ],
      "rows": 101,
      "table": true,
      "tojson": true
    },
    {
      "name": "noisy_circle_tda_rips",
      "title": "Toy Data: Noisy circle",
      "object": "noisy_circle_tda_rips",
      "class": [
        "list"
      ],
      "fields": [],
      "table": true,
      "tojson": false
    },
    {
      "name": "persistence_sample",
      "title": "Toy Data: A sample of persistence diagrams",
      "object": "persistence_sample",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "trefoils",
      "title": "A sample of persistence diagrams from the trefoil",
      "object": "trefoils",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    }
  ],
  "_help": [
    {
      "page": "arch_spirals",
      "title": "A sample of persistence diagrams from the arch spiral",
      "topics": [
        "arch_spirals"
      ]
    },
    {
      "page": "distances",
      "title": "Distances between two persistence diagrams",
      "topics": [
        "bottleneck_distance",
        "distances",
        "kantorovich_distance",
        "wasserstein_distance"
      ]
    },
    {
      "page": "noisy_circle",
      "title": "Toy Data: Noisy circle",
      "topics": [
        "noisy_circle",
        "noisy_circle_points",
        "noisy_circle_ripserr",
        "noisy_circle_tda_rips"
      ]
    },
    {
      "page": "pairwise-distances",
      "title": "Pairwise distances within a set of persistence diagrams",
      "topics": [
        "bottleneck_pairwise_distances",
        "kantorovich_pairwise_distances",
        "pairwise-distances",
        "wasserstein_pairwise_distances"
      ]
    },
    {
      "page": "persistence",
      "title": "An 'S3' class for storing persistence data",
      "topics": [
        "as.data.frame.persistence",
        "as.matrix.persistence",
        "as_diagram",
        "as_diagram.persistence",
        "as_diagram.PHom",
        "as_persistence",
        "as_persistence.data.frame",
        "as_persistence.diagram",
        "as_persistence.hclust",
        "as_persistence.list",
        "as_persistence.matrix",
        "as_persistence.persistence",
        "as_persistence.PHom",
        "format.persistence",
        "get_pairs",
        "persistence",
        "print.persistence"
      ]
    },
    {
      "page": "persistence_sample",
      "title": "Toy Data: A sample of persistence diagrams",
      "topics": [
        "persistence_sample"
      ]
    },
    {
      "page": "persistence-set",
      "title": "An 'S3' class object for storing sets of persistence diagrams",
      "topics": [
        "as_persistence_set",
        "format.persistence_set",
        "persistence-set",
        "print.persistence_set"
      ]
    },
    {
      "page": "trefoils",
      "title": "A sample of persistence diagrams from the trefoil",
      "topics": [
        "trefoils"
      ]
    }
  ],
  "_readme": "https://github.com/tdaverse/phutil/raw/HEAD/README.md",
  "_rundeps": [
    "BH",
    "cli",
    "cpp11",
    "rlang"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    },
    {
      "shlib": "libgomp",
      "package": "libgomp1",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "openmp",
      "homepage": "http://gcc.gnu.org/",
      "description": "GCC OpenMP (GOMP) support library"
    }
  ],
  "_vignettes": [
    {
      "source": "persistence-class.qmd",
      "filename": "persistence-class.html",
      "title": "The persistence class",
      "engine": "quarto::html",
      "headings": [
        "Structure of the class",
        "Supported inputs"
      ],
      "created": "2025-05-02 12:02:41",
      "modified": "2025-05-02 12:02:41",
      "commits": 1
    },
    {
      "source": "validation-benchmark.qmd",
      "filename": "validation-benchmark.html",
      "title": "Validation and Benchmark of Wasserstein Distances",
      "engine": "quarto::html",
      "headings": [
        "Definitions",
        "Validation",
        "Distances between nontrivial diagrams",
        "Distances from the trivial diagram",
        "Benchmarks",
        "References"
      ],
      "created": "2025-04-27 10:27:03",
      "modified": "2025-09-01 10:10:35",
      "commits": 6
    }
  ],
  "_score": 6.061452479087193,
  "_indexed": true,
  "_nocasepkg": "phutil",
  "_universes": [
    "tdaverse",
    "astamm"
  ],
  "_previous": "0.0.3",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:23:49.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/31a9004304dd758085dbc16d0126945e946e662e90383f061c1ed9220512b753",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:23:37.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/3ff8574c95bd76f086ec89dddfc5eaaf1d6eb73ddbc9ca661047bbe3ea0e14ad",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:23:14.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/3aaed05ebeb6541ea68c1f9c7a99946d339dfe60977b127280529ce14a207e52",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:24:09.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/950fc38012974019702eb844d947e6eeeed4c7f5348595ee200c0fc354d7d093",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:26:17.000Z",
      "arch": "aarch64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/ba24ae1b6e573c27b74d2c868ad2a5306eb462d4e595da60ff2d54db89fca97e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:29:21.000Z",
      "arch": "x86_64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/fe748e350c8b9dbb9c15a5898ad96de7b4046ce72e3c5907ff35f7bde1596e08",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:28:11.000Z",
      "arch": "aarch64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/a6de087c4daa4a60e08d39d5eb0997f5b6bd86669f745d1e681b88fdda9bca61",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:28:28.000Z",
      "arch": "x86_64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/6daf8125c5b60ba3c75646138f6cb6a0aa5ab84e6208bd34c2b3b6f7659bdce1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:23:25.000Z",
      "arch": "emscripten",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/4917e9bc2389af12a572bfabf0b54dc4f5ff54d2b89514471f4c5a5a1c05965a",
      "status": "success",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:27:23.000Z",
      "arch": "aarch64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/9e4da5e68ed45c2bd8a6bf9a3da6fcdcefde876d5b8ebef49236de0dcfa79089",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:24:58.000Z",
      "arch": "x86_64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/839e2aef8d5222f0480b314bed417a4f9bdd1149dd15bf7e1d0ffd83baf6f829",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:23:27.000Z",
      "arch": "x86_64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/d18cd3e00fd452657e233fdee30d123fc96adf33b48b0f3bc6ec3f1b2d6b6f1d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:27:18.000Z",
      "arch": "aarch64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/13049d8c3124f3d73655ab9d4d6da88a2f268c67d574b3fa35e7cd8d0306c559",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.0.3.9000",
      "date": "2026-10-07T22:23:14.000Z",
      "arch": "x86_64",
      "commit": "39d259f99a99d5559babf6463314e23bbe8b8b54",
      "fileid": "https://r2.ropensci.org/13ef58221cd4dfc81d99968e0e2cfdf80f1647065d7010a09226b8d50b68cd65",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/37695248921"
    }
  ]
}