DT (Dowker-Thistlethwaite) Codes: Difference between revisions

From Knot Atlas
Jump to navigationJump to search
No edit summary
No edit summary
Line 13: Line 13:


<!--$$?DTCode$$-->
<!--$$?DTCode$$-->
<!--Robot Land, no human edits to "END"-->
<!--The lines to END were generated by WikiSplice: do not edit; see manual.-->
{{Help1|n=1|s=DTCode}}
{| width=70% border=1 align=center
DTCode[i1, i2, ...] represents a knot via its DT (Dowker-Thistlethwaite) code. DTCode also acts as a "type caster", so for example, DTCode[K] where K is is a named knot returns the DT code of that knot.
|
{{Help2}}
<font color=blue><tt>In[2]:=</tt></font><font color=red><code> ?DTCode</code></font>

<tt>DTCode[i1, i2, ...] represents a knot via its DT (Dowker-Thistlethwaite) code. DTCode also acts as a "type caster", so for example, DTCode[K] where K is is a named knot returns the DT code of that knot.</tt>
|}
<!--END-->
<!--END-->


Line 25: Line 22:


<!--$$dts = DTCode /@ {Knot[9, 41], Knot[9, 42]}$$-->
<!--$$dts = DTCode /@ {Knot[9, 41], Knot[9, 42]}$$-->
<!--Robot Land, no human edits to "END"-->
<!--The lines to END were generated by WikiSplice: do not edit; see manual.-->
{{InOut1|n=2}}
{|
<pre style="color: red; border: 0px; padding: 0em"><nowiki>dts = DTCode /@ {Knot[9, 41], Knot[9, 42]}</nowiki></pre>
|<tt><font color=blue>In[3]:=</font></tt>
{{InOut2|n=2}}<pre style="border: 0px; padding: 0em"><nowiki>{DTCode[6, 10, 14, 12, 16, 2, 18, 4, 8], DTCode[4, 8, 10, -14, 2, -16, -18, -6, -12]}</nowiki></pre>
|<code><font color=red> dts = DTCode /@ {Knot[9, 41], Knot[9, 42]}</font></code>
{{InOut3}}
|- valign=top
|<tt><font color=blue>Out[3]=</font></tt>
|<pre style="border: 0px; padding: 0em">{DTCode[6, 10, 14, 12, 16, 2, 18, 4, 8], DTCode[4, 8, 10, -14, 2, -16, -18, -6, -12]}</pre>
|}
<!--END-->
<!--END-->


Line 40: Line 34:


<!--$$gcs = GaussCode /@ dts$$-->
<!--$$gcs = GaussCode /@ dts$$-->
<!--Robot Land, no human edits to "END"-->
<!--The lines to END were generated by WikiSplice: do not edit; see manual.-->
{{InOut1|n=3}}
{|
<pre style="color: red; border: 0px; padding: 0em"><nowiki>gcs = GaussCode /@ dts</nowiki></pre>
|<tt><font color=blue>In[4]:=</font></tt>
{{InOut2|n=3}}<pre style="border: 0px; padding: 0em"><nowiki>{GaussCode[1, -6, 2, -8, 3, -1, 4, -9, 5, -2, 6, -4, 7, -3, 8, -5, 9, -7],
|<code><font color=red> gcs = GaussCode /@ dts</font></code>
|- valign=top
|<tt><font color=blue>Out[4]=</font></tt>
|<pre style="border: 0px; padding: 0em">{GaussCode[1, -6, 2, -8, 3, -1, 4, -9, 5, -2, 6, -4, 7, -3, 8, -5, 9, -7],
GaussCode[1, -5, 2, -1, 3, 8, -4, -2, 5, -3, -6, 9, -7, 4, -8, 6, -9, 7]}</pre>
GaussCode[1, -5, 2, -1, 3, 8, -4, -2, 5, -3, -6, 9, -7, 4, -8, 6, -9, 7]}</nowiki></pre>
{{InOut3}}
|}
<!--END-->
<!--END-->


<!--$$DTCode /@ gcs$$-->
<!--$$DTCode /@ gcs$$-->
<!--Robot Land, no human edits to "END"-->
<!--The lines to END were generated by WikiSplice: do not edit; see manual.-->
{{InOut1|n=4}}
{|
<pre style="color: red; border: 0px; padding: 0em"><nowiki>DTCode /@ gcs</nowiki></pre>
|<tt><font color=blue>In[5]:=</font></tt>
{{InOut2|n=4}}<pre style="border: 0px; padding: 0em"><nowiki>{DTCode[6, 10, 14, 12, 16, 2, 18, 4, 8], DTCode[4, 8, 10, -14, 2, -16, -18, -6, -12]}</nowiki></pre>
|<code><font color=red> DTCode /@ gcs</font></code>
{{InOut3}}
|- valign=top
|<tt><font color=blue>Out[5]=</font></tt>
|<pre style="border: 0px; padding: 0em">{DTCode[6, 10, 14, 12, 16, 2, 18, 4, 8], DTCode[4, 8, 10, -14, 2, -16, -18, -6, -12]}</pre>
|}
<!--END-->
<!--END-->


Line 66: Line 54:


<!--$$PD[DTCode[4, 6, 2]]$$-->
<!--$$PD[DTCode[4, 6, 2]]$$-->
<!--Robot Land, no human edits to "END"-->
<!--The lines to END were generated by WikiSplice: do not edit; see manual.-->
{{InOut1|n=5}}
{|
<pre style="color: red; border: 0px; padding: 0em"><nowiki>PD[DTCode[4, 6, 2]]</nowiki></pre>
|<tt><font color=blue>In[6]:=</font></tt>
{{InOut2|n=5}}<pre style="border: 0px; padding: 0em"><nowiki>PD[X[4, 2, 5, 1], X[6, 4, 1, 3], X[2, 6, 3, 5]]</nowiki></pre>
|<code><font color=red> PD[DTCode[4, 6, 2]]</font></code>
{{InOut3}}
|- valign=top
|<tt><font color=blue>Out[6]=</font></tt>
|<pre style="border: 0px; padding: 0em">PD[X[4, 2, 5, 1], X[6, 4, 1, 3], X[2, 6, 3, 5]]</pre>
|}
<!--END-->
<!--END-->

Revision as of 20:41, 27 August 2005


The "DT Code" ("DT" after Clifford Hugh Dowker and Morwen Thistlethwaite) of a knot [math]\displaystyle{ K }[/math] is obtained as follows:

  • Start "walking" along [math]\displaystyle{ K }[/math] and count every crossing you pass through. If [math]\displaystyle{ K }[/math] has [math]\displaystyle{ n }[/math] crossings and given that every crossing is visited twice, the count ends at [math]\displaystyle{ 2n }[/math]. Label each crossing with the values of the counter when it is visited, though when labeling by an even number, take it with a minus sign if you are walking "under" the crossing.
  • Every crossing is now labeled with two integers whose absolute values run from [math]\displaystyle{ 1 }[/math] to [math]\displaystyle{ 2n }[/math]. It is easy to see that each crossing is labeled with one odd integer and one even integer. The DT code of [math]\displaystyle{ K }[/math] is the list of even integers paired with the odd integers 1, 3, 5, ..., taken in this order. See the figure below.
The DT notation

KnotTheory` has some rudimentary support for DT codes:

(For In[1] see Setup)

In[1]:= ?DTCode

DTCode[i1, i2, ...] represents a knot via its DT (Dowker-Thistlethwaite) code. DTCode also acts as a "type caster", so for example, DTCode[K] where K is is a named knot returns the DT code of that knot.

Thus for example, the DT codes for the last 9 crossing alternating knot 9_41 and the first 9 crossing non alternating knot 9_42 are:

In[2]:=
dts = DTCode /@ {Knot[9, 41], Knot[9, 42]}
Out[2]=
{DTCode[6, 10, 14, 12, 16, 2, 18, 4, 8], DTCode[4, 8, 10, -14, 2, -16, -18, -6, -12]}

(The DT code of an alternating knot is always a sequence of positive numbers but the DT code of a non alternating knot contains both signs.)

DT codes and Gauss codes carry the same information and are easily convertible:

In[3]:=
gcs = GaussCode /@ dts
Out[3]=
{GaussCode[1, -6, 2, -8, 3, -1, 4, -9, 5, -2, 6, -4, 7, -3, 8, -5, 9, -7], 
 
  GaussCode[1, -5, 2, -1, 3, 8, -4, -2, 5, -3, -6, 9, -7, 4, -8, 6, -9, 7]}
In[4]:=
DTCode /@ gcs
Out[4]=
{DTCode[6, 10, 14, 12, 16, 2, 18, 4, 8], DTCode[4, 8, 10, -14, 2, -16, -18, -6, -12]}

Conversion between DT codes and/or Gauss codes and PD codes is more complicated; the harder side, going from DT/Gauss to PD, was written by Siddarth Sankaran at the University of Toronto:

In[5]:=
PD[DTCode[4, 6, 2]]
Out[5]=
PD[X[4, 2, 5, 1], X[6, 4, 1, 3], X[2, 6, 3, 5]]