template<typename Coeff>
algHF class

morphism in the cobordism category

A cobordism consists of two objects, namely front (CobObj) and back (CobObj), and a list of decorations (Deco) together with a list of components.

A component is a list of tangle ends (TE), starting with the lowest, so that components can be compared by their first entry. The components are ordered by their first element, which we will sometimes refer to as their 'name'; this allows us to add them together efficiently, without reordering dots. A component always has an even number of tangle ends. Adjacent entries are connected via arcs in the two tangles (alternatingly front and back); the second entry is the tangle end that is connected to the first via the front tangle.

Constructors, destructors, conversion operators

algHF(KS front, KS back, std::list<HFdeco<Coeff>> decos)
constructor, which generates the list of components automatically; this is slower than the standard constructor

Public functions

auto check() const -> bool
true if the cobordism passes some sanity checks
auto check(const CobObj& obj_from, const CobObj& obj_to) const -> bool
true if the cobordism is zero or goes between the two specified objects
auto operator*(const CobMor<Coeff>& cob1) const -> CobMor<Coeff>
compose two morphisms as functions: $\mathrm{Mor}(b,c)\otimes\mathrm{Mor}(a,b)\rightarrow\mathrm{Mor}(a,c)$ (note the order!). The function raises an exception if the morphisms are incomposable.
auto operator+(const CobMor<Coeff>& cob2) const -> CobMor<Coeff>
add two morphisms together; no sanity checks are performed.
auto to_string() const -> std::string
string representation of a cobordism;