{
  "_id": "6a3100493efcd9bda4351cde",
  "Package": "phutil",
  "Title": "Persistence Homology Utilities",
  "Version": "0.0.2",
  "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",
  "RoxygenNote": "7.3.3",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-06-16 07:47:07 UTC",
    "User": "root"
  },
  "Author": "Aymeric Stamm [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-8725-3654>), Jason Cory Brunson\n[aut] (ORCID: <https://orcid.org/0000-0003-3126-9494>), Michael\nKerber [ctb] (HERA C++ code), Dmitriy Morozov [ctb] (HERA C++\ncode), Arnur Nigmetov [ctb] (HERA C++ code)",
  "Maintainer": "Aymeric Stamm <aymeric.stamm@cnrs.fr>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-04-17 15:33:06 UTC",
  "RemoteUrl": "https://github.com/cran/phutil",
  "RemoteRef": "HEAD",
  "RemoteSha": "760b8b5e10281d5b1887e49b4f296cf2df677db6",
  "MD5sum": "0df6fe7588fe3749a76b5fee886ec6eb",
  "_user": "cran",
  "_type": "src",
  "_file": "phutil_0.0.2.tar.gz",
  "_fileid": "cf3e2cffd025a6d5f043aa1bf0b8240e9df0c4126c49b8c0ccdfc950d79cadaa",
  "_filesize": 627257,
  "_sha256": "cf3e2cffd025a6d5f043aa1bf0b8240e9df0c4126c49b8c0ccdfc950d79cadaa",
  "_created": "2026-06-16T07:47:07.000Z",
  "_published": "2026-06-16T07:50:33.957Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 81606390796,
      "time": 142,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7660458284"
    },
    {
      "job": 81606390935,
      "time": 151,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7660463068"
    },
    {
      "job": 81606390845,
      "time": 132,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7660455311"
    },
    {
      "job": 81606390801,
      "time": 142,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7660460241"
    },
    {
      "job": 81605713045,
      "time": 239,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7660411918"
    },
    {
      "job": 81606390772,
      "time": 138,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7660458928"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/27602203920",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/phutil",
  "_commit": {
    "id": "760b8b5e10281d5b1887e49b4f296cf2df677db6",
    "author": "Aymeric Stamm <aymeric.stamm@cnrs.fr>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.0.2\n",
    "time": 1776439986
  },
  "_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": "cran",
  "_selfowned": false,
  "_usedby": 2,
  "_updates": [
    {
      "week": "2026-16",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.0.2",
      "date": "2026-04-17"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "astamm",
      "count": 2,
      "uuid": 6044838
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 609,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 582,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/phutil"
  },
  "_devurl": "https://github.com/tdaverse/phutil",
  "_pkgdown": "https://tdaverse.github.io/phutil/",
  "_searchresults": 30,
  "_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",
    "LICENSE",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/tdaverse/phutil",
  "_realowner": "tdaverse",
  "_cranurl": false,
  "_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/cran/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": [
        "Structure of the class",
        "Supported inputs"
      ],
      "created": "2025-05-15 13:50:08",
      "modified": "2025-05-15 13:50:08",
      "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-05-15 13:50:08",
      "modified": "2026-04-17 15:33:06",
      "commits": 2
    }
  ],
  "_score": 4.2552725051033065,
  "_indexed": false,
  "_nocasepkg": "phutil",
  "_universes": [
    "cran"
  ],
  "_indexurl": "https://tdaverse.r-universe.dev/phutil",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.2",
      "date": "2026-06-16T07:49:35.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "760b8b5e10281d5b1887e49b4f296cf2df677db6",
      "fileid": "e739737fe8655ed6c6fa200398ec7caf9f23257ced980661eda2df38979fd8cf",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27602203920"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.2",
      "date": "2026-06-16T07:49:43.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "760b8b5e10281d5b1887e49b4f296cf2df677db6",
      "fileid": "8fd8613498a3e9cccf666d2df09a3c0dd1f183b2f02d268eef04c03071a54a7a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27602203920"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.0.2",
      "date": "2026-06-16T07:49:25.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "760b8b5e10281d5b1887e49b4f296cf2df677db6",
      "fileid": "4e5707a471e95106c1590c8b26acd200367207851c0f8c65ab7b88abfae3a080",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27602203920"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.0.2",
      "date": "2026-06-16T07:49:37.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "760b8b5e10281d5b1887e49b4f296cf2df677db6",
      "fileid": "24edd476c5f83656bf2249650b789da3fcebeb2f5192d62cf12e41acf970eab7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27602203920"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.2",
      "date": "2026-06-16T07:49:49.000Z",
      "arch": "emscripten",
      "commit": "760b8b5e10281d5b1887e49b4f296cf2df677db6",
      "fileid": "3baf63d95dd5e68ef778eb430df05c86dab394b11b61427932e9ebafc5d88c05",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27602203920"
    }
  ]
}