template<typename Coeff>
Chain struct

list of clinks (Clink), representing a single indecomposable summand of a loop-type complex. If the morphism of the last Clink is non-zero, the chain corresponds to a compact curve; otherwise it corresponds to a non-compact one.

Constructors, destructors, conversion operators

Chain(const std::string str)
convert output of Chain::to_string() back into chain
Chain(std::vector<Clink<Coeff>> clinks)
standard constructor

Public functions

void concentrate_local_system()
move all non-trivial coefficients into the first Clink (if the corresponding curve is compact) or make all equal to 1 (if the corresponding curve is non-compact)
void fix_shorts()
convert chain representation of short figure-8s into standard form
auto is_compact() const -> bool
true if chain is compact, ie if the last clink has an arrow.
auto operator<(const Chain<Coeff>& chain2) const -> bool
standard comparison operator
auto size() const -> size_t
length (=#objects) of chain
void sort()
sort generators such that the first one has minimal quantum grading, and the first morphism is type S (if possible)
auto to_Khr_curve() const -> Khr_curve
attempt to recognize a chain as a component from the clasification of components of $\widetilde{\mathrm{Kh}}$
auto to_string(const max_gr_str& max_gr = {}, const bool& is_4ended = true) const -> std::string
string representative of chain; the options are the same as Clink::to_string

Public variables

std::vector<Clink<Coeff>> clinks
vector of clinks that make up a chain

Function documentation

template<typename Coeff>
void Chain<Coeff>::fix_shorts()

convert chain representation of short figure-8s into standard form

Convert ●——(D^n+S^2n)—>● into ●——(D^n)—>●<~(S^2n)~~.

template<typename Coeff>
bool Chain<Coeff>::operator<(const Chain<Coeff>& chain2) const

standard comparison operator

compares the following properties until they differ:

  1. number of Clinks
  2. idempotents
  3. labels of morphism
  4. δ-gradings
  5. quantum gradings

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

string representative of chain; the options are the same as Clink::to_string

converts a single chain to a string

detailed test documentation