Use Case
classDiagram
note_tv --|> notation
note_tv *-- note_tv_t
class note_tv_t {
<<struct>>
List~uint8_t~ twist_vec
}
class notation {
<<interface>>
}
Language
C
Implements
Uses
N/A
Libraries
N/A
Functionality
A rational tangle is given by alternating NE,SE and SE,SW twisting of the \(0\) tangle\({}^{[2]}\)\({}^{[1]}\). Discussion of canonicality of this construction of twist vector can be found in \({}^{[2]}\). A twist vector encodes these alternating twists as a list of integers.
Example
Starting with the \(0\) tangle then
twisting NE/SE clockwise 3 times SW/SE clockwise 2 times NE/SE clockwise 2 times we have
noted as \(\LB3\ 2\ 2\RB\)
Data Structure Description
When encoding a twist vector as a string the standard indexing is \(\LB x_n\ x_{n-1}\ \cdots\ x_0\RB\) we follow the convention but align the indexing to the array index, that is
$ $ \LB xn\ x\ \cdots\ x0\RB\to \begin{array}{|c|c|c|c|} \hline \text{0x0000}& & &\text{0x0000}+n\cdot \text{size_t}\\hline x_0&\cdots & x $ $} &x_n\ \hline \end{array
Encoding
When encoding the data structure to a string we need to reverse the order we read the twist vector array. This will left align the \(0\) index in the string.
Decoding
We need to insert entries into the twist vector data structure, to do this we will traverse the string in reverse.
Cite
- Conway, J.H. “An Enumeration of Knots and Links, and Some of Their Algebraic Properties.” In Computational Problems in Abstract Algebra, 329–58. Elsevier, 1970. https://doi.org/10.1016/B978-0-08-012975-4.50034-5.
- Kauffman, Louis H., and Sofia Lambropoulou. “On the Classification of Rational Knots,” 2002. https://doi.org/10.48550/ARXIV.MATH/0212011.