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.

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 hashes)

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 hashes)

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 hashes)

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 hashes)

Uploaded CPython 3.11 macOS 13.0+ ARM64

Supported by

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