template<typename Coeff>
Deco class

auxillary class for the definition of CobMor

represents an elementary cobordism of the form $a\cdot H^n\cdot C$ , where $a$ is a scalar, $n$ is a non-negative integer and $C$ is a single cobordism each of whose components carries at most one dot. Here, we treat all components equally, we do not pick a distinguished component in the sense of [4].

Constructors, destructors, conversion operators

Deco(int hpower, Dots dots, Coeff coeff)
standard constructor

Public functions

void add_H()
increase hpower by 1
auto gr_q() const -> Grading
grading of a decoration ( $ \#\text{cobordism components}-2\cdot \text{hpower}-2\#\text{dots}$ )
auto operator!=(const Deco<Coeff>& deco2) const -> bool
true if decos differ, ignoring coefficients
auto operator*(const Deco<Coeff>& deco2) const -> Deco<Coeff>
concatenate two (partial) decorations
auto operator<(const Deco<Coeff>& deco2) const -> bool
true if decos are ordered lexicographically (first dots, then hpower), ignoring coefficients. We assume, but do not check that the components are in the same order.
auto operator==(const Deco<Coeff>& deco2) const -> bool
true if decos agree, ignoring coefficients
void reorder_new2old(const IndexL& new_order)
reorder dots according to the new order of components
void reorder_old2new(const IndexL& new_order)
reorder dots according to the new order of components
void sub_H()
decrease hpower by 1
void switch_dot(const size_t& index)
remove/add a single dot on a single component;

Public variables

friend CobMor< Coeff >
friend (CobMor)

Friends

auto deco_is_zero(const Deco<Coeff>& deco) -> bool
check if zero; used in CobMor::simplify().

Function documentation

template<typename Coeff>
void Deco<Coeff>::reorder_new2old(const IndexL& new_order)

reorder dots according to the new order of components

new_order[new_index]=old_index;

We assume new_order.size()==dots.size()

template<typename Coeff>
void Deco<Coeff>::reorder_old2new(const IndexL& new_order)

reorder dots according to the new order of components

new_order[old_index]=new_index;

We assume new_order.size()==dots.size().