Skip to main content

Library for computing persistent homology

Project description

Dionysus is a computational topology package focused on persistent homology. It is written in C++, with Python bindings. The second version (previous version) is re-written from scratch, which helps it accomplish a few goals:

  • Modified BSD license (because GPL causes too many problems in academic software).

  • No dependency on Boost.Python; Dionysus 2 uses (and includes) PyBind11 instead, which greatly simplifies installation.

  • Cleaner, more consistent internal design (for example, all algorithms support arbitrary fields).

  • Some new algorithms, e.g., omni-field persistence and Wasserstein and bottleneck distance computation from Hera.

  • A few plotting routines, based on Matplotlib.

  • Better integration with NumPy.

Dionysus 2 also includes vineyards for updating persistence under adjacent filtration transpositions and linear homotopies. Alpha shape filtrations are available via DioDe.

Dependencies:
  • Boost, although Dionysus 2 doesn’t link any of its libraries, so it’s considerably easier to build the project.

  • (Optional) SciPy for the LSQR routine used in circular coordinates.

  • (Optional) Matplotlib for plotting.

Requirements:
  • Boost needs to be at least version 1.55.

  • If you are using GCC, the oldest supported version is 5.4.

Contact:
  • please use the dionysus mailing list for all questions and discussion related to the library;

  • GitHub’s issue tracker is a central location for bug reports and feature requests.

Get, Build, Install

The simplest way to install Dionysus, as a Python package, is from PyPI:

pip install --verbose dionysus

Pass --upgrade to pip, if you have already installed some version of Dionysus.

Alternatively, you can install it directly from the development repository (this gives you the latest version):

pip install --verbose git+https://github.com/mrzv/dionysus.git

Alternatively, you can clone and build everything by hand. To get Dionysus 2, either clone its repository:

git clone https://github.com/mrzv/dionysus.git

or download it as a Zip archive.

To build the project:

mkdir build
cd build
cmake ..
make

To use the Python bindings, either launch Python from .../build/bindings/python or add this directory to your PYTHONPATH variable, by adding:

export PYTHONPATH=.../build/bindings/python:$PYTHONPATH

to your ~/.bashrc or ~/.zshrc.

Documentation

Documentation for Dionysus can be found here.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dionysus-2.2.0.tar.gz (784.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dionysus-2.2.0-cp314-cp314-manylinux_2_39_x86_64.whl (778.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ x86-64

dionysus-2.2.0-cp314-cp314-macosx_26_0_arm64.whl (610.2 kB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

dionysus-2.2.0-cp313-cp313-manylinux_2_39_x86_64.whl (776.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

dionysus-2.2.0-cp313-cp313-macosx_26_0_arm64.whl (608.9 kB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

dionysus-2.2.0-cp312-cp312-manylinux_2_39_x86_64.whl (776.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

dionysus-2.2.0-cp312-cp312-macosx_26_0_arm64.whl (608.8 kB view details)

Uploaded CPython 3.12macOS 26.0+ ARM64

dionysus-2.2.0-cp311-cp311-manylinux_2_39_x86_64.whl (773.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

dionysus-2.2.0-cp311-cp311-macosx_26_0_arm64.whl (606.4 kB view details)

Uploaded CPython 3.11macOS 26.0+ ARM64

dionysus-2.2.0-cp310-cp310-manylinux_2_39_x86_64.whl (768.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

dionysus-2.2.0-cp310-cp310-macosx_26_0_arm64.whl (605.8 kB view details)

Uploaded CPython 3.10macOS 26.0+ ARM64

dionysus-2.2.0-cp39-cp39-manylinux_2_39_x86_64.whl (768.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.39+ x86-64

dionysus-2.2.0-cp39-cp39-macosx_26_0_arm64.whl (605.7 kB view details)

Uploaded CPython 3.9macOS 26.0+ ARM64

File details

Details for the file dionysus-2.2.0.tar.gz.

File metadata

  • Download URL: dionysus-2.2.0.tar.gz
  • Upload date:
  • Size: 784.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for dionysus-2.2.0.tar.gz
Algorithm Hash digest
SHA256 21af8a5ef0797e0823cc1526692b7c81241911b4e10045654961e7bd11296624
MD5 90ad31085b461786b338d2a1a073abb3
BLAKE2b-256 a3889a8deed5a0e336f343861e2df74464f2b08ae8fa3448bde5c2772a8be8b8

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp314-cp314-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp314-cp314-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 d63abd478dfb040be983788e89d19561ea30fcaf6b2cb4f0fe804fbcc751aef4
MD5 49082b3b3e0850aa8a9b6bf75dbbb47c
BLAKE2b-256 4d6368f5562f6b387cebaf93008050b9ff638750b86669701d4f3fe17bd29616

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp314-cp314-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 80277e47d11645c325eb7db42cad304f43f1df1067b84f4f96963a7ab3555a84
MD5 520c58b30cb2cbf9d561c8f4a00afb50
BLAKE2b-256 47266b73067814ffd4ae595b01ead04911a5702d8c17f059d4ee6a8f72eb9d74

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 646d65e06346f1cbe69285b02c4a2e67db412fad51e8bd8d0acf8eefdfff3d57
MD5 36c0300dc1d22b81cdc468f2af85e3f8
BLAKE2b-256 21ebdc6159aaafeae4ec1538cd10d179597cf0a0913def019d5aa28602577dc4

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp313-cp313-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 6db03abfdebcc9f90239c2ae62d27238d3440bc4b85bee96b3d8e286e2477d53
MD5 c7bc06f6d5c5bbe9130e3a68dc0a29b5
BLAKE2b-256 368cfc0a4e28228dc7431e73597db8d467f66e7c7f3264f53a204c37f5cb64bf

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 1fe0c27f7f889be8406072530b4c06cfbd93389d0762db2399a9c9f8abd8cb45
MD5 b1a4f491d3cf4687f3cc1e7bee3d7b58
BLAKE2b-256 297535e85dce5db04427376a61f280c5f621bf0bb6ce0d5f8e6f6f87d8f185ee

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp312-cp312-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 330c7d5a297770378c9040f0a27d7a351ceb3d072ce93817c5c8448cd7c9421a
MD5 ad783d6fc96a1c9b09d295fe4b1e4a39
BLAKE2b-256 7381637cc40c324b9a2ae19864f211fc6b2a695d2bdc3cf5ce13c47d4b4b8bab

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 bec297d95a84a011d3ce95f3c666cebbe62e3262fa4dd4dd36ed9a62d2e1be29
MD5 e2b5cfc3f89bd20ef2d5aa7f90d8792a
BLAKE2b-256 9ada04d613ac9bba9dc5a0c39924b469068a2f9781d5ec987429b07e80a54028

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp311-cp311-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp311-cp311-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 4ebabafa8d509f06dedd53f24b7e17f0d87eaa8db6b3e33ac6a1f78c4f9cd18b
MD5 aecd249557e704be8cb523990e695599
BLAKE2b-256 e8f94177a53dc22501d89aa80b2e7d44d52c4d6a1f65f98a26c5eac9acf893e1

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 aa582eb7f9801476fd4ec250605ef89c967105aae702e7d2f3784d65c515dc0b
MD5 3e9ee55903c764530fd328f011b55e36
BLAKE2b-256 1c49b9d76f24a90ac9b666c6cbeed770498a6d84929c6c0aca65900e23b63edb

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp310-cp310-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp310-cp310-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 34e8c9b5b09a4a0a4d72ec68af1930856c4c0a6bfbabb3478c9033debad57b68
MD5 536181ece811bf12b997b8cf40299963
BLAKE2b-256 23cfc7b5069b224795e08978d57116bed2e82fdb33c30e074ce363bed3b50035

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp39-cp39-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp39-cp39-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 cbd42b6e8c050d9ab22abe58ef6de96b6e14484da7ef3dee72cdb5d7e1a97c27
MD5 b4ab8395cb72838dd45170d614340b14
BLAKE2b-256 eef04a9895add64509ada58ba298c4da27dce29b4fa3250b7d5325f8fc962b8f

See more details on using hashes here.

File details

Details for the file dionysus-2.2.0-cp39-cp39-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dionysus-2.2.0-cp39-cp39-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 58db10723e8670b52a039089aed342a7272e013fa3eb183f8e507365ce35be9d
MD5 8c686935119b0a8f11bf3bf621654880
BLAKE2b-256 3dae2eb19bf6e5910d8de7a507a13ce1da52bc2171d24fd1e11442fd33e270c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page