Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mrzv/dionysus
Library for computing persistent homology
https://github.com/mrzv/dionysus
Last synced: 1 day ago
JSON representation
Library for computing persistent homology
- Host: GitHub
- URL: https://github.com/mrzv/dionysus
- Owner: mrzv
- License: other
- Created: 2017-07-14T19:02:35.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-07-06T22:32:04.000Z (over 1 year ago)
- Last Synced: 2024-03-30T23:02:01.634Z (8 months ago)
- Language: C++
- Homepage: http://mrzv.org/software/dionysus2
- Size: 2.98 MB
- Stars: 138
- Watchers: 8
- Forks: 30
- Open Issues: 7
-
Metadata Files:
- Readme: README.rst
- License: LICENSE.txt
Awesome Lists containing this project
README
Dionysus 2
==========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 `_:
.. parsed-literal::
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):
.. parsed-literal::
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 `_:.. parsed-literal::
git clone ``_
or download it as a `Zip archive `_.
To build the project::
mkdir build
cd build
cmake ..
makeTo 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 `_.