template<typename Coeff>
Clink struct

a single link a Chain

consists of an object (BNObj), a morphism (BNMor), and a boolean value rightarrow which is true if the morphism starts at the specified generator. The morphism should consist of a single label or no label (in which case rightarrow is undefined).

Constructors, destructors, conversion operators

Clink(BNObj object, BNMor<Coeff> morphism, bool rightarrow)
standard constructor
Clink(const std::string& str)
convert output of Clink::to_string() back into chain; there is an ambiguity in the output, we cannot distinguish between an arrow S and S^2 if there is no label, unless we know what the next object is. This needs to be checked in Chain::Chain ( std::string ); The default is S.

Public functions

auto to_string(const max_gr_str& max_gr = {}, const bool& with_grading = true, const bool& with_label = true, const bool& is_4ended = true) const -> std::string
string representation of a Clink

Public variables

BNMor<Coeff> morphism
morphism a of a clink
BNObj object
object x of a clink
bool rightarrow
true if x–(a)->, false if x<-(a)– , undefined if morphism.is_0().

Function documentation

template<typename Coeff>
std::string Clink<Coeff>::to_string(const max_gr_str& max_gr = {}, const bool& with_grading = true, const bool& with_label = true, const bool& is_4ended = true) const

string representation of a Clink

examples:

  • without grading: ⬯~~(-S)~>
  • with grading: h^-16 q^-47 δ^-15/2 ⬮——D—>
  • ⬯~> is the same as ⬯~~(S)~>
  • ⬮—> is the same as ⬮——D—>

If with_label is false, a label will still be included if it is necessary for specifying the morphism. If is_4ended is false, the morphism will be interpreted as an element of the free polynomial ring in the variable $H$ , see BNAlgebra.h.