#include <sources/headers/Complex.h>
template<typename Obj, template<typename> typename Mor, typename Coeff>
Complex_Base class
base class for complexes
A complex consists of a list objects of objects, a matrix diffs of morphisms that defines a differential and a list cancelled_
Derived classes
-
template<typename Obj, template<typename> typename Mor, typename Coeff>class Complex
- generic child of Complex_
Base
Constructors, destructors, conversion operators
- Complex_Base()
- constructor of zero object in the category of complexes
- Complex_Base(std::vector<Obj> objects, Eigen::SparseMatrix<Mor<Coeff>> diffs)
- standard constructor
Public functions
- void cancel()
- computes fully reduced complex obtained by repeated application of the Cancellation Lemma from [4]
- void cancel(const ssize_t& sourceindex, const ssize_t& targetindex)
- implements the Cancellation Lemma from [4] for a single component of the differential
- auto check() const -> bool
- true if the components of the differential d are well-defined and d²=0. Otherwise, this function will give a warning.
- auto find_invertible() -> std::pair<int, int>
- component of the differential to which one can apply the Cancellation Lemma from [4]; if there is no such component, this returns (n,n), where n is the number of objects in the complex
- auto get_cancelled_indices() const -> std::list<unsigned int>
- list of cancelled indices
- auto get_diffs() const -> Eigen::SparseMatrix<Mor<Coeff>>
- Eigen matrix defining the differential.
- auto get_objects() const -> std::vector<Obj>
- list of objects in the complex
- void isotopy(const ssize_t& start, const ssize_t& end, const Mor<Coeff>& mor)
- implements the Clean-Up Lemma from [4], ie performs a basic isotopy along start—(mor)—>end
- void print(const ssize_t& index_from, const ssize_t& index_to) const
- print a component of the differential of a complex in terminal
- void resize()
- resizes the list of objects and matrix of differentials according to the list of cancelled indices
- auto to_string() const -> std::string
- string representative of a complex
Protected variables
- std::list<unsigned int> cancelled_indices
- list of cancelled indices, which is empty by default; cancel() adds the indices of the cancelled generators, but keeps objects and diffs intact; resize() then actually deletes the objects and resizes diffs according to this list.
- Eigen::SparseMatrix<Mor<Coeff>> diffs
- matrix defining the differential of the complex
- std::vector<Obj> objects
- list of objects of the complex (corresponds to the underlying 'chain module')
- size_t start_find_invertible
- starting index for finding invertible generators