{
  "_id": "6a1f0cc3b401979e7341ce8b",
  "Package": "phutil",
  "Title": "Persistence Homology Utilities",
  "Version": "0.0.2.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)",
  "RoxygenNote": "7.3.3",
  "Repository": "https://tdaverse.r-universe.dev",
  "Date/Publication": "2026-04-17 13:24:43 UTC",
  "RemoteUrl": "https://github.com/tdaverse/phutil",
  "RemoteRef": "HEAD",
  "RemoteSha": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-05-17 09:22:25 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>",
  "MD5sum": "17ce2947d43418d98bfc97584519a3df",
  "_user": "tdaverse",
  "_type": "src",
  "_file": "phutil_0.0.2.9000.tar.gz",
  "_fileid": "2e3651545709fd3007b90dcba3c89f6db414b99a85ee53e8b68ac0718abc0a5b",
  "_filesize": 621680,
  "_sha256": "2e3651545709fd3007b90dcba3c89f6db414b99a85ee53e8b68ac0718abc0a5b",
  "_created": "2026-05-17T09:22:25.000Z",
  "_published": "2026-06-02T17:02:59.976Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79126997272,
      "time": 143,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7041197690"
    },
    {
      "job": 79126997165,
      "time": 153,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7041198618"
    },
    {
      "job": 79126997133,
      "time": 142,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7041197468"
    },
    {
      "job": 79126997154,
      "time": 144,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7041197816"
    },
    {
      "job": 79126997126,
      "time": 132,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7041200974"
    },
    {
      "job": 79126997166,
      "time": 229,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7041210298"
    },
    {
      "job": 79126997211,
      "time": 132,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7041196270"
    },
    {
      "job": 79126997113,
      "time": 407,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7041226700"
    },
    {
      "job": 79126995948,
      "time": 239,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7041180986"
    },
    {
      "job": 79126996050,
      "time": 170,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7364535795"
    },
    {
      "job": 79126996707,
      "time": 145,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7041197967"
    },
    {
      "job": 79126997218,
      "time": 130,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7041196175"
    },
    {
      "job": 79126997213,
      "time": 191,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7041203043"
    }
  ],
  "_buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/tdaverse/phutil",
  "_commit": {
    "id": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
    "author": "Aymeric Stamm <aymeric.stamm@cnrs.fr>",
    "committer": "Aymeric Stamm <aymeric.stamm@cnrs.fr>",
    "message": "Increment version number to 0.0.2.9000\n",
    "time": 1776432283
  },
  "_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
  },
  "_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": "2025-20",
      "n": 3
    },
    {
      "week": "2025-30",
      "n": 2
    },
    {
      "week": "2025-36",
      "n": 1
    },
    {
      "week": "2025-37",
      "n": 1
    },
    {
      "week": "2026-16",
      "n": 7
    }
  ],
  "_tags": [
    {
      "name": "v0.0.2",
      "date": "2026-04-14"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "astamm",
      "count": 188,
      "uuid": 6044838
    },
    {
      "user": "corybrunson",
      "count": 51,
      "uuid": 7768027
    },
    {
      "user": "a1danbryant",
      "count": 11,
      "uuid": 124316415
    }
  ],
  "_userbio": {
    "uuid": 74478337,
    "type": "organization",
    "name": "tdaverse",
    "description": "an inceptive R package collection for computational topology and topological data analysis"
  },
  "_downloads": {
    "count": 656,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/phutil"
  },
  "_devurl": "https://github.com/tdaverse/phutil",
  "_pkgdown": "https://tdaverse.github.io/phutil/",
  "_searchresults": 28,
  "_quarto": true,
  "_topics": [
    "quarto",
    "cpp",
    "openmp"
  ],
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/phutil.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_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"
    }
  ],
  "_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": "14.2.0-4ubuntu2~24.04.1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    },
    {
      "shlib": "libgomp",
      "package": "libgomp1",
      "source": "gcc",
      "version": "14.2.0-4ubuntu2~24.04.1",
      "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": [],
      "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": [],
      "created": "2025-04-27 10:27:03",
      "modified": "2025-09-01 10:10:35",
      "commits": 6
    }
  ],
  "_score": 6.225309281725863,
  "_indexed": true,
  "_nocasepkg": "phutil",
  "_universes": [
    "tdaverse",
    "astamm"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:24:51.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "14290f4cea49c33a45ee3be36ef33886c2bb64b5c90f2f924b54695872358b40",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:24:55.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "c45850833f1e350e95e0e3640bdc4fd2c023ffdf4aaa58df13fe845cf6533b92",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:24:51.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "98bb63fc560837ff42706dcd499bc2e8688e9cf9d7dac8aebd917ac34573f191",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:24:50.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "d488193cfa52b630161de35d3bebf9181eeb0d9edff659e90e1786e703270a95",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:25:20.000Z",
      "arch": "aarch64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "e1dda531d79553237ba7906d707c1dc37b22c61e76012afa74da3bc7db6472ae",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:25:59.000Z",
      "arch": "x86_64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "c3befa35eb312ae7d4e585b27aab09859f74a07e5be98908ddc8c6da6b5c24fc",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:24:40.000Z",
      "arch": "aarch64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "b057096ddeaa22dd323671bf77270f7f50beb51520bbdaa22ba24bd11dc20981",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:27:47.000Z",
      "arch": "x86_64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "e65b1af99b2aff9e14b9daa9a73f9abfd2b55d787d44d3de2f80a3f1dc8a18f0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:24:26.000Z",
      "arch": "x86_64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "721fab25e3f75d27fba8d808fcbf6184ef4c645316a0a20be4cc5d67ca441d1c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:24:17.000Z",
      "arch": "x86_64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "2bc4b7eebdb83c710716e14396a1c9115bbd6c60e04a4cf3615e9665cee0c8bd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.0.2.9000",
      "date": "2026-05-17T09:24:57.000Z",
      "arch": "x86_64",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "722ca6e499da23d11ab45e5dc0fd6a619af224da7f9fcc7334c67643c6110d1a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.2.9000",
      "date": "2026-06-02T17:02:33.000Z",
      "arch": "emscripten",
      "commit": "c9bb2ebe0e77a2af37911f6710297a8ba7b3ed30",
      "fileid": "7a2694e42ae105856a60364178e5e9c19bec9c07f832243312a6352dec21b2fa",
      "status": "success",
      "buildurl": "https://github.com/r-universe/tdaverse/actions/runs/25986906586"
    }
  ]
}