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