Template Struct ReducedDGVectorSpace

Struct Documentation

template<typename MT>
struct ReducedDGVectorSpace

Public Types

using vect_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 DGVectorSpace<MT> &C)

initialize with chain complex C, but do not do reduction

inline void set_indices()
inline ReducedDGVectorSpace()
inline ReducedDGVectorSpace(const DGVectorSpace<MT> &C)
template<typename algflag>
inline ReducedDGVectorSpace(const DGVectorSpace<MT> &C, algflag)
template<typename algflag>
inline ReducedDGVectorSpace(const DGVectorSpace<MT> &C, algflag, bats::compute_basis_flag)
template<typename algflag>
inline ReducedDGVectorSpace(const DGVectorSpace<MT> &C, algflag, bats::clearing_flag)
template<typename algflag>
inline ReducedDGVectorSpace(const DGVectorSpace<MT> &C, algflag, bats::clearing_flag, bats::compute_basis_flag)
template<typename algflag>
inline ReducedDGVectorSpace(const DGVectorSpace<MT> &C, algflag, bats::compression_flag)
template<typename TV>
inline TV to_hom_basis(const TV &v, size_t k) const

put vector/matrix in homology-revealing basis in dimension k

template<typename TV>
inline TV from_hom_basis(const TV &v, size_t k) const

put vector/matrix back in original basis in dimension k

inline vect_type get_preferred_representative(const size_t j, const size_t k) const
inline void find_preferred_representative(vect_type &y, size_t k) const
inline vect_type chain_preferred_representative(const vect_type &c, size_t k) const
inline void print_summary(bool print_nnz = false) const
inline void _make_U_upper_triangular(size_t k)

helper function for updates

Reduces U, permutes to be upper triangular applies same column operations to R

WARNING: after this, p2c[k] will contain pivots of U

template<typename ...Args>
inline void update_reduction2(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)
inline size_t find_reverse_index(const size_t &i, const size_t &n)
inline std::vector<size_t> find_reverse_index(const std::vector<size_t> &index_list, const size_t &n)
inline std::vector<std::vector<size_t>> find_reverse_index(const std::vector<std::vector<size_t>> &index_list, const size_t &n)
inline void _delete_cells(size_t k, const UpdateInfo2 &UI)

delete cells in dimension k

inline void _insert_cells(size_t k, const UpdateInfo2 &UI)
inline void update_basis(const UpdateInfo2 &UI)

General update factorization

template<typename Information_type, typename ...Args>
inline void update_basis_general(const Information_type &UI, Args... args)
template<typename Information_type, typename ...Args>
inline void update_basis_general_clearing(const Information_type &UI, Args... args)

Public Members

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