Template Struct ChainComplex

Struct Documentation

template<typename MT>
struct ChainComplex

Public Functions

inline ChainComplex()
inline ChainComplex(size_t maxd)
inline ChainComplex(const std::vector<MT> &boundary)
template<typename CpxT>
inline ChainComplex(const CpxT &X)
template<typename CpxT>
inline ChainComplex(const CpxT &X, const CpxT &A)
inline size_t maxdim() const
inline size_t dim(size_t k) const
inline size_t dim() const
inline bool is_valid_complex() const
inline ChainComplex subcomplex(std::vector<std::vector<size_t>> &inds) const
inline ChainComplex relative_complex(std::vector<std::vector<size_t>> &inds) const
inline MT &operator[](size_t k)

reference to k-dimensional boundary

Parameters

k – dimension

inline const MT &operator[](size_t k) const
inline void permute_basis(size_t k, const std::vector<size_t> &perm)
inline void permute_basis(const std::vector<std::vector<size_t>> &perm)
inline void ipermute_basis(size_t k, const std::vector<size_t> &perm)
inline void ipermute_basis(const std::vector<std::vector<size_t>> &perm)
template<typename Information_type>
inline void update_basis_general(size_t k, const Information_type &UI)
template<typename Information_type>
inline void update_basis_general(const Information_type &UI_fast)
inline void clear_compress_apparent_pairs()

A preprocessing step for computing homology using the reduction algorithm.

Warning

using this function will invalidate any basis used by a homology algorithm since no basis vector will be obtained for the cleared columns

Public Members

std::vector<MT> boundary

Friends

inline friend ChainComplex tensor_product(const ChainComplex &A, const ChainComplex &B, size_t dmax)
inline friend ChainComplex tensor_product(const ChainComplex &A, const ChainComplex &B)