Template Class ReducedChainComplex

Class Documentation

template<typename MT>
class ReducedChainComplex

Public Types

using chain_type = typename MT::col_type

Public Functions

inline size_t hdim(size_t k) const
inline size_t betti(size_t k) const
inline size_t maxdim() const
inline size_t dim(size_t k) const
inline MT &operator[](size_t k)
inline void initialize(const ChainComplex<MT> &C)

initialize with chain complex C, but do not do reduction

inline ReducedChainComplex()
inline ReducedChainComplex(const ChainComplex<MT> &C)
template<typename algflag>
inline ReducedChainComplex(const ChainComplex<MT> &C, algflag)
template<typename algflag>
inline ReducedChainComplex(const ChainComplex<MT> &C, algflag, bats::compute_basis_flag)
template<typename algflag>
inline ReducedChainComplex(const ChainComplex<MT> &C, algflag, bats::clearing_flag)
template<typename algflag>
inline ReducedChainComplex(const ChainComplex<MT> &C, algflag, bats::clearing_flag, bats::compute_basis_flag)
template<typename algflag>
inline ReducedChainComplex(const ChainComplex<MT> &C, algflag, bats::compression_flag)
template<typename algflag>
inline ReducedChainComplex(const ChainComplex<MT> &C, algflag, bats::compression_flag, bats::compute_basis_flag)
template<typename ...Args>
inline void update_reduction2(size_t k, Args... args)
template<typename ...Args>
inline void update_reduction(size_t k, Args... args)
inline void permute_matrices(size_t k, const std::vector<size_t> &perm)
template<typename ...Args>
inline void permute_basis(const std::vector<std::vector<size_t>> &perm, Args... args)
template<typename Information_type, typename ...Args>
inline void update_basis_general(const Information_type &UI, Args... args)
inline void sparsify_basis()

greedily introduce sparsity into basis

inline void remove_extra_cycles()

remove extra cycles from U[k]

template<typename TV>
inline TV to_hom_basis(const TV &v, size_t k) const
template<typename TV>
inline TV from_hom_basis(const TV &v, size_t k) const
inline chain_type get_preferred_representative(const size_t j, const size_t k) const
inline void find_preferred_representative(chain_type &y, const size_t k) const
inline chain_type chain_preferred_representative(const chain_type &c, size_t k) const
inline void print_summary(bool print_nnz = false) const

Public Members

std::vector<MT> U
std::vector<MT> R
std::vector<std::vector<size_t>> I
std::vector<std::vector<size_t>> p2c