@ -199,16 +199,12 @@ There are also other codes like *Braid representations* and *DT (Dowker-Thistlet
=== PD codes
Reference: #link("https://knotinfo.math.indiana.edu/descriptions/pd_notation.html")[PD notation article from KnotInfo]
The main source for the section is the article on #link("https://knotinfo.math.indiana.edu/descriptions/pd_notation.html")[PD notation from KnotInfo]. The PD code for a link is generated by labelling each arc of the link with a number. Then we choose a starting point for each component and process each component in order.
The PD code for a link is generated by labelling each arc of the link with a number. Then we choose a starting point for each component and process each component in order.
For each component we walk along it from the starting point in the component direction.
For each component we walk along it from the starting point in the component direction. When we pass at a crossing that is an over-crossing for the current strand we write down a $4$-uple of counter-clockwise numbers for the arc incident to the crossing starting from the _entering under-crossing_ arc.
When we pass at a crossing that is an over-crossing for the current strand we write down a $4$-uple of counter-clockwise numbers for the arc incident to the crossing starting from the _entering under-crossing_ arc.
*Algorithm*:
```
@ -354,7 +350,7 @@ Finally SG codes are also more "space efficient". Let $N$ be a number of bits to
- SG codes use $approx 2n times (N + 2) + k times ceil(log_2(n))$ bits of information. Each crossing appears twice and we store its id and over/under and handedness information, we also need to store the structure of the list with $k times ceil(log_2(n))$ more bits.
So PD codes are more simple and compact to store (and generate from a diagram) but SG codes are more space efficient and easy to manipulate.
So PD codes are simpler and compact to store (and generate from a diagram) but SG codes are more space efficient and easy to manipulate.
// - Splicing is just a matter of splitting and rejoining lists correctly, for example let's see what happens in the case of an _horizontal splice_. There are two cases based on the orientation of the strands:
@ -592,7 +588,7 @@ So PD codes are more simple and compact to store (and generate from a diagram) b
// ),
// $
#pagebreak()
=== Link reconstruction from code
@ -734,21 +730,17 @@ We are now going to walk thorough the class that lets use work nicely with *SG c
@ -858,7 +848,7 @@ So we have a total of $2 times 2 times 2 = 8$ cases to analyze. The following di
caption: [Cases for horizontal splicing],
)
Let's explain this diagram a bit, each label is a part of the list for the component, the $-$ sign tells is that part is walked in opposite order and must reversed in the final list.
Let's explain this diagram a bit, each label is a part of the list for the component, the "$-$" sign tells is that part is walked in opposite order and must reversed in the final list.
The first two cases in the top left are the ones where the splice happens on a self-crossing that is the crossing is with two parts of the same strand. We can assume the starting point is before the over-strand, the result is the same as we can just rotate the list to get in this configuration. So if this component has $n$ crossings and $i$ and $j$ are the indices of the over-strand crossing and the under-strand crossing respectively the code will be