#include <sources/headers/Complex.h>
template<typename Coeff>
Complex<CobObj, CobMor, Coeff> class
Specialization of Complex to the cobordism category (Cob.h)
Base classes
-
template<typename Obj, template<typename> typename Mor, typename Coeff>class Complex_Base<CobObj, CobMor, Coeff>
- base class for complexes
Public functions
- void AddCap(const unsigned int& i)
- computes the cobordism complex obtained by tensoring with the complex consisting of a single object, which is the identity plus a cap at the tangle end i, counted from the bottom left starting at 0.
- void AddCrossing(const unsigned int& i, const bool& sign, const bool& XorY)
- computes the cobordism complex obtained by tensoring with the complex corresponding to a crossing at the tangle end i, counted from the bottom left starting at 0.
- void AddCup(const unsigned int& i)
- computes the cobordism complex obtained by tensoring with the complex consisting of a single object, which is the identity plus a cup at the tangle end i, counted from the bottom left starting at 0.
- auto optimize(const std::vector<bool>& bot_orient, std::string tanglestring = "") -> std::string
- add crossings such that the number of generators is minimized, or add tangle according to tanglestring. The returned string represents the crossings that were added.
- void print(const std::string& name = "", const std::string& metadata = "") const
- if name is the empty, print string representative of a complex over the cobordism category into the terminal; if name is non-empty, this prints this string representative into the file specified by 'name'; metadata must be provided.
- auto to_BN() const -> Complex<BNObj, BNMor, Coeff>
- Corresponding complex over the Bar-Natan algebra (or the free polynomial ring in the variable ); this only works if such a conversion is defined for crossingless atangles and cobordisms, ie for four-ended (two-ended) tangles; see also CobMor::
to_BNMor() and CobObj:: to_BNObj(). - void view(const std::string& name = "temp.svg", const std::string& metadata = "") const
- generates an svg file of a labelled oriented graph representing the complex. Metadata must be provided.
Function documentation
template<typename Coeff>
void Complex<CobObj, CobMor, Coeff><Coeff>:: AddCrossing(const unsigned int& i,
const bool& sign,
const bool& XorY)
computes the cobordism complex obtained by tensoring with the complex corresponding to a crossing at the tangle end i, counted from the bottom left starting at 0.
The complexes for the single crossing look as follows (compare Section 4 in [4])
for crossing Y, ie ⤫ (XorY == 0):
- if positive crossing (sign==1):
- if negative crossing (sign==0):
for crossing X, ie ⤬ (XorY == 1):
- if positive crossing (sign==1):
- if negative crossing (sign==0):