template<typename Coeff>
Label class

auxillary class for the definition of BNMor

represents an elementary morphism of the form $a\cdot D^n$ , $a\cdot S^n$ , or $a\cdot \mathrm{id}$ for some coefficient $a$ and positive integer $n$ . We sometimes also interpret elements in the subalgebra $\langle \mathrm{id}_\bullet,D_\bullet,D_\bullet^2, D_\bullet^3,\dots\rangle$ of $\mathcal{B}$ as elements of the free polynomial ring $k[H]$ . This is the case if the boolean argument 'is_4ended' is false.

Constructors, destructors, conversion operators

Label(int type, Coeff coeff)
type is an integer whose absolute value $n$ is the exponent of $S$ (if $n\leq0$ ) or $D$ (if $n\geq0$ ); coeff is the coefficient $a$ of the label

Public functions

auto get_coeff() const -> Coeff
coefficient of label ( $a$ )
auto get_type() const -> int
type of label ( $n$ )
auto is_type(const bool& faceD) const -> bool
true if $n>0$ , false if $n<0$ , undefined behaviour if $n=0$ .
auto operator!=(const Label<Coeff>& label2) const -> bool
true if label types ( $n$ ) differ (ignores coefficients)
auto operator<(const Label<Coeff>& label2) const -> bool
true if label types ( $n$ ) are ordered (ignores coefficients)
auto operator==(const Label<Coeff>& label2) const -> bool
true if label types ( $n$ ) agree (ignores coefficients)
void set_coeff(const Coeff& set_coeff_to_1)
replace coefficient of label ( $a$ ) by a new one
auto to_string(const bool& with_coeff = true, const bool& is_4ended = true) const -> std::string
string representation of label; coefficients are included, iff the first argument is true; if second argument is false, non-negative label types ( $n$ ) are interpreted as powers of the varible $H\in k[H]$ and negative label types ( $n$ ) raise exceptions.

Public variables

friend BNMor< Coeff >
friend (BNMor)


auto label_is_zero(const Label<Coeff>& label) -> bool
true if the coefficient of the label is zero. This function is used in BNMor::simplify().