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.

Features that haven’t (yet) made it over from Dionysus 1 include vineyards. 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.0.10.tar.gz (1.8 MB view details)

Uploaded Source

Built Distributions

dionysus-2.0.10-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (449.6 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.34+ x86-64 manylinux: glibc 2.35+ x86-64

dionysus-2.0.10-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (419.5 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.34+ ARM64 manylinux: glibc 2.35+ ARM64

dionysus-2.0.10-cp311-cp311-macosx_13_0_arm64.whl (381.4 kB view details)

Uploaded CPython 3.11 macOS 13.0+ ARM64

File details

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

File metadata

  • Download URL: dionysus-2.0.10.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for dionysus-2.0.10.tar.gz
Algorithm Hash digest
SHA256 e20f6cc5622d0ff337a2f87fb5b3f2b7b7aedc4cdd07018c27b38f4cb75b0db8
MD5 701c109d207cfdc42bc371a31c6503d7
BLAKE2b-256 5a9fdfc7c340a269cdbe686a605afbae5df9037006b2178c3d0a32e36ae854f7

See more details on using hashes here.

File details

Details for the file dionysus-2.0.10-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for dionysus-2.0.10-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 219f284a8a45e75149c23ab91d4651899a9d66e623fff52ff5a6d9ba6f0f32ae
MD5 df5e2264e599a85cdb1788fe6f5e51da
BLAKE2b-256 4b38813bb8c49a6a234616cfa7258fc9011f4cdfe6bbb20876e99b9836269638

See more details on using hashes here.

File details

Details for the file dionysus-2.0.10-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for dionysus-2.0.10-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 50ae8b5f3b648115b08573f1dd469ba92ede4696342a4348ab6080e71bcc1d27
MD5 31c64966b3a2b3573145f5fb3d83a7d5
BLAKE2b-256 d881b7f900be181e47c98ba9bffadf7b4b5d701ece087210c6f3cf1aa334cbe1

See more details on using hashes here.

File details

Details for the file dionysus-2.0.10-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for dionysus-2.0.10-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 baf47aa0c5195e221832760637ce22c85b98a2a112c220533e61fc13c6b0804c
MD5 55f680218ae7564538d193bb6a7c9f61
BLAKE2b-256 7901d1b97553769b6591c7d96f475455c2ae998782a70b2dd870bc71d1efbb4b

See more details on using hashes here.

Supported by

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