Template Struct DGVectorSpace¶
Defined in File dgvs.hpp
Struct Documentation¶
-
template<typename MT>
struct DGVectorSpace¶ a class for a differential graded vector space.
This encapsulates both chain and cochain complex constructions
degree is the degree of the differential: -1 for chain complexes (default) +1 for cochain complexes
differential holds the differential maps
We store maps starting on the edge (-1,0) (-1) — (0) — (1) — (2) — … This map is 0 in the case of standard chain/cochain complexes but can be non-zero for augmented chain/cochain complexes
TODO: need to handle +1 boundary in maxdim
Public Functions
-
inline MT &operator[](ssize_t k)¶
Access maps in various dimensions
if degree is +1 (cohomolgical type), then lowest map index is -1 -[-1]-> * -[0]-> * -[1]-> …
if degree is -1 (homological type) then lowest map index is 0 <-[0]- * <-[1]- * <-[2]- …
-
inline DGVectorSpace()¶
-
inline DGVectorSpace(size_t maxd, int deg = -1)¶
Construct a DGVector space with maxd dimensions
-
inline DGVectorSpace(const std::vector<MT> &diff, int deg = -1)¶
Construct a DGVector space explicitly from differentials
-
template<typename CpxT>
inline DGVectorSpace(const CpxT &X, const int deg = -1, const bool augmented = false)¶
-
inline ssize_t maxdim() const¶
-
inline size_t dim(ssize_t k) const¶
-
inline void permute_basis(ssize_t k, const std::vector<size_t> &perm)¶
-
inline void permute_basis(const std::vector<std::vector<size_t>> &perm)¶
-
inline void ipermute_basis(ssize_t k, const std::vector<size_t> &perm)¶
-
inline void ipermute_basis(const std::vector<std::vector<size_t>> &perm)¶
-
inline bool is_differential(size_t k)¶
checks that d_{k-degree} d_k = 0
-
inline MT &operator[](ssize_t k)¶