CobObj class

a crossingless two-sided (top/bottom) tangle, ie object of the cobordism category

An object consists of the number of top tangle ends, the number of bottom tangle ends, arcs (Arcs), a homological grading, and a quantum grading.

Constructors, destructors, conversion operators

CobObj(TE strands)
constructor of the identity tangle with 'size' strands
CobObj(TE strands, TE top, Arcs arcs, Grading h = 0, Grading q = 0)
arc constructor
CobObj(TE strands, TE top, size_t index, Grading h = 0, Grading q = 0)
standard constructor

Public functions

void AddCap(const TE& i)
Crossingless tangle obtained by adding two extra ends before the $i^\text{th}$ tangle end (which should be at the tangle bottom) and connect them by an arc.
void AddCup(const TE& i)
Crossingless tangle obtained by joining the $i^\text{th}$ tangle end (which should be at the tangle bottom) to the next and removing the new closed component if there is one.
auto AddCupGivesClosedComponent(const TE& i) const -> bool
true if the two ends were connected (=new closed component); false if the two ends belonged to different arcs
auto arcs() const -> std::vector<TE>
arc-format for object, top=0
auto check() const -> bool
true if the object is a well-defined crossingless tangle
auto compatible_with(const CobObj obj) const -> bool
true if a cobordisms between these objects exist.
auto components_to(const CobObj& obj2) const -> IndexLL
list of components from one crossingless tangle to another
auto ends() const -> TE
total number of tangle ends
auto get_delta2() const -> Grading
twice the δ-grading of object
auto get_h() const -> Grading
homological grading of object
auto get_index() const -> size_t
number of top tangle ends
auto get_q() const -> Grading
quantum grading of object
auto get_strands() const -> TE
number of tangle strands
auto get_top() const -> TE
number of top tangle ends
auto h_is_even() const -> bool
true if the homological grading of object is even
auto operator!=(const CobObj& obj2) const -> bool
true if idempotents differ (ignore gradings)
auto operator==(const CobObj& obj2) const -> bool
true if idempotents coincide (ignore gradings)
void print() const
print representative of a cobordism object in terminal
void set_h(const Grading& new_h)
set homological grading of object
void set_q(const Grading& new_q)
set quantum grading of object
void shift_hq(const Grading& h_shift, const Grading& q_shift)
shift gradings of object
auto to_BNObj() const -> BNObj
corresponding object of the Bar-Natan algebra (BNObj); this only works for 2- or 4-ended tangles
auto to_string() const -> std::string
string representative of a cobordism object
auto to_svg(const bool& with_grading = true) const -> std::string
string representative of a cobordism object for svg file