Template Class ZigzagFiltration

Class Documentation

template<typename CpxT, typename T = double>
class ZigzagFiltration

A class that wraps a complex with a zigzag filtration.

A class that wraps a complex with a right filtration. Cells can have entry times and removal times. These intervals are stored as std::pair<T, T>

Public Functions

inline ZigzagFiltration()
template<class ...Ts>
inline ZigzagFiltration(const Ts (&... args))

Initialization which passes arguments to initialize the underlying complex

Parameters

args... – passed to complex initialization

inline ZigzagFiltration(const CpxT &X, const std::vector<std::vector<std::vector<std::pair<T, T>>>> &val)

Construct right filtration explicitly on a complex

val should be a vector of vector of pairs. val[k][i] is the pair of entry times for cell i in dimension k in X.

No checks are done to make sure the number of values matches the number of cells

Parameters
  • X – complex representing topological space

  • val – right filtration values for each cell in X

inline const CpxT &complex() const

return const reference to underlying complex

inline const std::vector<std::vector<std::vector<std::pair<T, T>>>> &vals() const

return const reference to right filtration values

inline const std::vector<std::vector<std::pair<T, T>>> &vals(const size_t k) const

return const reference to right filtration values

Parameters

k – dimension of values to return

inline size_t maxdim() const

return maximum dimension of cells

inline size_t ncells(const size_t dim) const

return number of cells in specified dimension

Parameters

dim – dimension

template<class ...Ts>
inline cell_ind add(const T entry, const T exit, Ts (&... args))

add cell to right filtration

Parameters
  • entry – entry parameter

  • exit – exit parameter

  • ...args – - passed to add method of underlying complex

inline cell_ind add(const T entry, const T exit, std::vector<size_t> &&s)
template<class ...Ts>
inline std::vector<cell_ind> add_recursive(const T entry, const T exit, Ts (&... args))

Add recursively to right filtration. Any cells added will take same entry and exit parameters

Parameters
  • entry – entry parameter

  • exit – exit parameter

  • ...args – - passed to add_recursive method of underlying complex

inline std::vector<cell_ind> add_recursive(const T entry, const T exit, std::vector<size_t> &&s)
inline CpxT levelset(T s0, T s1) const

Return thickened levelset f^{-1}([s0,s1]) adds a cell to levelset if [b,d] [s0,s1] is non-empty

Parameters
  • s0 – lower bound of levelset

  • s1 – upper bound of levelset