Software


greedypermutation

This is package for computing greedy permutations in Python. It takes a finite metric space as input and generates a greedy permutation. It supports both the classic quadratic-time algorithm as well as the $O(n\log \Delta)$ algorithm based on Clarkson's sb data structure.

Installation:
pip install greedypermutation

Documentation: donsheehy.github.io/greedypermutation

Repository: github.com/donsheehy/greedypermutation


multimatching

This package compute the bottleneck distance between persistence diagrams. It is optimized for the case when points are given with multiplicity.

Installation:
pip install multimatching

Documentation: donsheehy.github.io/multimatching

Repository: github.com/donsheehy/multimatching


pdsketch

This package computes sketches of persistence diagrams as described in the paper Sketching Persistence Diagrams.

Installation:
pip install pdsketch

Documentation: donsheehy.github.io/pdsketch

Repository: github.com/donsheehy/pdsketch


metricspaces

The metricspaces package is a Python package for working with metric spaces. It allows you to create a metric space from a set of points or a distance function or both. If you don't provide a distance function, it will look for a function called dist. The library handles all caching of distances.

Installation:
pip install metricspaces

Documentation: donsheehy.github.io/metricspaces

Repository: github.com/donsheehy/metricspaces


ds2

The ds2 library is a collection of algorithms and data structures from my open source text book: A First Course on Data Structures in Python.

You can find the full source of the book on github: github.com/donsheehy/datastructures.

The book's documentation can be found here: donsheehy.github.io/datastructures/.

The book is a literate program. In other words, the book is the documentation. The code is extracted directly from the source.

Installation:
pip install ds2


ds2viz

The ds2viz library is a general purpose wrapper around a couple different basic graphics libraries in Python. The main goal is to provide a common set of abstractions that allow for direct output to png, svg, or pdf.

Installation:
pip install ds2viz


prosecode

The prosecode library was written to facilitate the development of literate programs such as A First Course on Data Structures in Python. It is designed to work with the same conventions as the popular "Markdown Preview Enhanced" code chunk system. It runs inline code examples, places the code output into the document, and can also extract the code into separate python files.

Installation:
pip install prosecode

Documentation: donsheehy.github.io/prosecode

Repository: github.com/donsheehy/prosecode