Python bindings for the Basic Applied Topology Subprograms (BATS) library. This includes:
- Simplicial, Cubical, and Cell Complexes
- Simplicial, Cubical, and Cellular Maps
- Homology and induced maps
- Persistent homology
- Zigzag homology
- A variety of topolgical constructions
Note that the C++ repository is the main library, and contains more features. This repository provides bindings for a subset of the functionality of BATS, and is under active development.
Documentation, examples, and tutorials can be found at bats-tda.readthedocs.io
Once installed, you can import the bats
namespace:
import bats
The easiest way to install bats
is using pip
pip install bats-tda # gcc
To use clang (e.g. on a Mac) note that you must install openMP first
CC=clang pip install bats-tda # clang
Wheels are provided for Linux. If you want to force compilation from source, you can use
pip install --verbose --no-binary bats-tda bats-tda
bats
uses OpenMP, and it has to be compiled from source with a C++17 compliant compiler. This means installation can take a few minutes. You can pass --verbose
to pip
to see what is going on with installation.
If you don't have OpenMP, you can install with a package manager.
GCC (e.g. on Linux)
dnf install libgomp-devel # Fedora
apt-get install libgomp1-dev # Ubuntu
Clang (e.g. on Mac)
brew install libomp