<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://katlas.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RicalRocna</id>
	<title>Knot Atlas - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://katlas.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RicalRocna"/>
	<link rel="alternate" type="text/html" href="https://katlas.org/wiki/Special:Contributions/RicalRocna"/>
	<updated>2026-08-21T10:49:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://katlas.org/index.php?title=The_Jones_Polynomial&amp;diff=1691972</id>
		<title>The Jones Polynomial</title>
		<link rel="alternate" type="text/html" href="https://katlas.org/index.php?title=The_Jones_Polynomial&amp;diff=1691972"/>
		<updated>2008-12-16T22:00:17Z</updated>

		<summary type="html">&lt;p&gt;RicalRocna: chicbasde&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;rotrocouor&lt;br /&gt;
{{Manual TOC Sidebar}}&lt;br /&gt;
&lt;br /&gt;
{{Startup Note}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$?Jones$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{HelpLine|&lt;br /&gt;
n  = 2 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;Jones&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;Jones[L][q] computes the Jones polynomial of a knot or link L as a function of the variable q.&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In [[Naming and Enumeration]] we checked that the knots [[6_1]] and [[9_46]] have the same Alexander polynomial. Their Jones polynomials are different, though:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$Jones[Knot[6, 1]][q]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 3 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;Jones[Knot[6, 1]][q]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;     -4    -3    -2   2        2&lt;br /&gt;
2 + q   - q   + q   - - - q + q&lt;br /&gt;
                      q&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$Jones[Knot[9, 46]][q]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 4 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;Jones[Knot[9, 46]][q]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;     -6    -5    -4   2     -2   1&lt;br /&gt;
2 + q   - q   + q   - -- + q   - -&lt;br /&gt;
                       3         q&lt;br /&gt;
                      q&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Knot Image|L8a6|gif}}&lt;br /&gt;
&lt;br /&gt;
On links with an even number of components the Jones polynomial is a function of &amp;lt;math&amp;gt;\sqrt{q}&amp;lt;/math&amp;gt;, and hence it is often more convenient to view it as a function of &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;t^2=q&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$Jones[Link[8, Alternating, 6]][q]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 5 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;Jones[Link[8, Alternating, 6]][q]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;  -(9/2)    -(7/2)    3      3        4                     3/2&lt;br /&gt;
-q       + q       - ---- + ---- - ------- + 3 Sqrt[q] - 2 q    + &lt;br /&gt;
                      5/2    3/2   Sqrt[q]&lt;br /&gt;
                     q      q&lt;br /&gt;
 &lt;br /&gt;
     5/2    7/2&lt;br /&gt;
  2 q    - q&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$PowerExpand[Jones[Link[8, Alternating, 6]][t^2]]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 6 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;PowerExpand[Jones[Link[8, Alternating, 6]][t^2]]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;  -9    -7   3    3    4            3      5    7&lt;br /&gt;
-t   + t   - -- + -- - - + 3 t - 2 t  + 2 t  - t&lt;br /&gt;
              5    3   t&lt;br /&gt;
             t    t&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Jones polynomial attains &amp;lt;!--$all=Join[AllKnots[], AllLinks[]]; Length[Union[Jones[#][q]&amp;amp; /@ all]]$--&amp;gt;&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;2110&amp;lt;!--END--&amp;gt; values on the &amp;lt;!--$Length[all]$--&amp;gt;&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;2226&amp;lt;!--END--&amp;gt; knots and links known to &amp;lt;code&amp;gt;KnotTheory`&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$all = Join[AllKnots[], AllLinks[]];$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{In|&lt;br /&gt;
n  = 7 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;all = Join[AllKnots[], AllLinks[]];&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$Length /@ {Union[Jones[#][q]&amp;amp; /@ all], all}$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 8 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;Length /@ {Union[Jones[#][q]&amp;amp; /@ all], all}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;{2110, 2226}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;How is the Jones polynomial computed?&amp;quot;&amp;gt;&lt;br /&gt;
====How is the Jones polynomial computed?====&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(See also: [[The Kauffman Bracket using Haskell]])&lt;br /&gt;
&lt;br /&gt;
The Jones polynomial is so simple to compute using Mathematica that it&#039;s worthwhile pause and see how this is done, even for readers with limited prior programming experience. First, recall (say from {{ref|Kauffman}}) the definition of the Jones polynomial using the Kauffman bracket &amp;lt;math&amp;gt;\langle\cdot\rangle&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{{Equation|KBDef|&amp;lt;math&amp;gt;&lt;br /&gt;
  \langle\emptyset\rangle=1; \qquad&lt;br /&gt;
  \langle\bigcirc L\rangle = (-A^2-B^2)\langle L\rangle; \qquad&lt;br /&gt;
  \langle\slashoverback\rangle =&lt;br /&gt;
    A\langle\hsmoothing\rangle + B\langle\smoothing\rangle;&lt;br /&gt;
&amp;lt;/math&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; J(L) =&lt;br /&gt;
  \left.(-A^3)^{w(L)}\frac{\langle L\rangle}{\langle\bigcirc\rangle}\right|_{A\to q^{1/4}},&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
here &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; is a commutative variable, &amp;lt;math&amp;gt;B=A^{-1}&amp;lt;/math&amp;gt;, and &amp;lt;math&amp;gt;w(L)&amp;lt;/math&amp;gt; is the &#039;&#039;writhe&#039;&#039; of &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, the difference &amp;lt;math&amp;gt;n_+-n_-&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;n_+&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;n_-&amp;lt;/math&amp;gt; count the positive &amp;lt;math&amp;gt;(\overcrossing)&amp;lt;/math&amp;gt; and negative &amp;lt;math&amp;gt;(\undercrossing)&amp;lt;/math&amp;gt; crossings of &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:PDForTrefoil.gif|none|frame|&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;PD[X[1,4,2,5], X[3,6,4,1], X[5,2,6,3]]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;P[1,4] P[1,5] P[2,4] P[2,6] P[3,5] P[3,6]&amp;lt;/tt&amp;gt;]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just for concreteness, let us start by fixing &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; to be the trefoil knot shown above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$L = PD[Knot[3, 1]]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 9 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;L = PD[Knot[3, 1]]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;PD[X[1, 4, 2, 5], X[3, 6, 4, 1], X[5, 2, 6, 3]]&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Our first task is to perform the replacement &amp;lt;math&amp;gt;\langle\slashoverback\rangle\to A\langle\hsmoothing\rangle + B\langle\smoothing\rangle&amp;lt;/math&amp;gt; on all crossings of&lt;br /&gt;
&amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;. By our conventions (see [[Planar Diagrams]]) the edges&lt;br /&gt;
around a crossing &amp;lt;math&amp;gt;X_{abcd}&amp;lt;/math&amp;gt; are labeled &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;{}^c_d\slashoverback{}_a^b&amp;lt;/math&amp;gt;. Labeling the smoothings &amp;lt;math&amp;gt;(\hsmoothing, \ \smoothing)&amp;lt;/math&amp;gt; in the same way, &amp;lt;math&amp;gt;{}^c_d\hsmoothing{}_a^b&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;{}^c_d\smoothing{}_a^b&amp;lt;/math&amp;gt;, we are lead to the symbolic replacement rule &amp;lt;math&amp;gt;X_{abcd}\to AP_{ad}P_{bc}+BP_{ab}P_{cd}&amp;lt;/math&amp;gt;. Let us apply this rule to &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, switch to a multiplicative notation and expand:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$t1 = L /. X[a_,b_,c_,d_] :&amp;gt; A P[a,d] P[b,c] + B P[a,b] P[c,d]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 10 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;t1 = L /. X[a_,b_,c_,d_] :&amp;gt; A P[a,d] P[b,c] + B P[a,b] P[c,d]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;PD[A P[1, 5] P[2, 4] + B P[1, 4] P[2, 5], &lt;br /&gt;
 &lt;br /&gt;
  B P[1, 4] P[3, 6] + A P[1, 3] P[4, 6], &lt;br /&gt;
 &lt;br /&gt;
  A P[2, 6] P[3, 5] + B P[2, 5] P[3, 6]]&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$t2 = Expand[Times @@ t1]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 11 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;t2 = Expand[Times @@ t1]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt; 2&lt;br /&gt;
A  B P[1, 4] P[1, 5] P[2, 4] P[2, 6] P[3, 5] P[3, 6] + &lt;br /&gt;
 &lt;br /&gt;
     2        2&lt;br /&gt;
  A B  P[1, 4]  P[2, 5] P[2, 6] P[3, 5] P[3, 6] + &lt;br /&gt;
 &lt;br /&gt;
     2                                        2&lt;br /&gt;
  A B  P[1, 4] P[1, 5] P[2, 4] P[2, 5] P[3, 6]  + &lt;br /&gt;
 &lt;br /&gt;
   3        2        2        2&lt;br /&gt;
  B  P[1, 4]  P[2, 5]  P[3, 6]  + &lt;br /&gt;
 &lt;br /&gt;
   3&lt;br /&gt;
  A  P[1, 3] P[1, 5] P[2, 4] P[2, 6] P[3, 5] P[4, 6] + &lt;br /&gt;
 &lt;br /&gt;
   2&lt;br /&gt;
  A  B P[1, 3] P[1, 4] P[2, 5] P[2, 6] P[3, 5] P[4, 6] + &lt;br /&gt;
 &lt;br /&gt;
   2&lt;br /&gt;
  A  B P[1, 3] P[1, 5] P[2, 4] P[2, 5] P[3, 6] P[4, 6] + &lt;br /&gt;
 &lt;br /&gt;
     2                        2&lt;br /&gt;
  A B  P[1, 3] P[1, 4] P[2, 5]  P[3, 6] P[4, 6]&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above expression the product &amp;lt;tt&amp;gt;P[1,4] P[1,5] P[2,4] P[2,6] P[3,5] P[3,6]&amp;lt;/tt&amp;gt; represents a path in which &amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; is connected to &amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; is connected to &amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; is connected to &amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt;, etc. (see the right half of the figure above). We simplify such paths by repeatedly applying the rules &amp;lt;math&amp;gt;P_{ab}P_{bc}\to P_{ac}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;P^2_{ab}\to P_{aa}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$t3 = t2 //. {P[a_,b_]P[b_,c_] :&amp;gt; P[a,c], P[a_,b_]^2 :&amp;gt; P[a,a]}$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 12 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;t3 = t2 //. {P[a_,b_]P[b_,c_] :&amp;gt; P[a,c], P[a_,b_]^2 :&amp;gt; P[a,a]}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt; 3                              2&lt;br /&gt;
B  P[1, 1] P[2, 2] P[3, 3] + A B  P[2, 2] P[4, 4] + &lt;br /&gt;
 &lt;br /&gt;
   3                      2                      2&lt;br /&gt;
  A  P[3, 3] P[4, 4] + A B  P[3, 3] P[4, 4] + 3 A  B P[5, 5] + &lt;br /&gt;
 &lt;br /&gt;
     2&lt;br /&gt;
  A B  P[1, 1] P[5, 5]&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To complete the computation of the Kauffman bracket, all that remains is to replace closed cycles (paths of the form &amp;lt;math&amp;gt;P_{aa}&amp;lt;/math&amp;gt; by &amp;lt;math&amp;gt;-A^2-B^2&amp;lt;/math&amp;gt;, to replace &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; by &amp;lt;math&amp;gt;A^{-1}&amp;lt;/math&amp;gt;, and to simplify:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$t4 = Expand[t3 /. P[a_,a_] -&amp;gt; -A^2-B^2 /. B -&amp;gt; 1/A]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 13 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;t4 = Expand[t3 /. P[a_,a_] -&amp;gt; -A^2-B^2 /. B -&amp;gt; 1/A]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;  -9   1    3    7&lt;br /&gt;
-A   + - + A  + A&lt;br /&gt;
       A&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We could have, of course, combined the above four lines to a single very short program, that compues the Kauffman bracket from the beginning to the end:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$KB0[pd_] := Expand[&lt;br /&gt;
  Expand[Times @@ pd /. X[a_,b_,c_,d_] :&amp;gt; A P[a,d] P[b,c] + 1/A P[a,b] P[c,d]]&lt;br /&gt;
    //. {P[a_,b_]P[b_,c_] :&amp;gt; P[a,c], P[a_,b_]^2 :&amp;gt; P[a,a], P[a_,a_] -&amp;gt; -A^2-1/A^2}]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{In|&lt;br /&gt;
n  = 14 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;KB0[pd_] := Expand[&lt;br /&gt;
  Expand[Times @@ pd /. X[a_,b_,c_,d_] :&amp;gt; A P[a,d] P[b,c] + 1/A P[a,b] P[c,d]]&lt;br /&gt;
    //. {P[a_,b_]P[b_,c_] :&amp;gt; P[a,c], P[a_,b_]^2 :&amp;gt; P[a,a], P[a_,a_] -&amp;gt; -A^2-1/A^2}]&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$t4 = KB0[PD[Knot[3, 1]]]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 15 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;t4 = KB0[PD[Knot[3, 1]]]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;  -9   1    3    7&lt;br /&gt;
-A   + - + A  + A&lt;br /&gt;
       A&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will skip the uninteresting code for the computation of the writhe here; it is a linear time computation, and if that&#039;s all we ever wanted to compute, we wouldn&#039;t have bothered to purchase a computer. For our &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; the result is &amp;lt;math&amp;gt;-3&amp;lt;/math&amp;gt;, and hence the Jones polynomial of &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; is given by&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$(-A^3)^(-3) * t4 / (-A^2-1/A^2) /. A -&amp;gt; q^(1/4) // Simplify // Expand$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 16 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;(-A^3)^(-3) * t4 / (-A^2-1/A^2) /. A -&amp;gt; q^(1/4) // Simplify // Expand&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;  -4    -3   1&lt;br /&gt;
-q   + q   + -&lt;br /&gt;
             q&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Knot Image|L11a548|gif}}&lt;br /&gt;
&lt;br /&gt;
At merely 3 lines of code, our program is surely nice and elegant. But it is very slow:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$time0 = Timing[KB0[PD[Link[11, Alternating, 548]]]]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 17 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;time0 = Timing[KB0[PD[Link[11, Alternating, 548]]]]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;                -23    5    10    -3            5      13      17&lt;br /&gt;
{1.594 Second, A    + --- + -- + A   + 6 A + 6 A  + 5 A   - 5 A   + &lt;br /&gt;
                       15    7&lt;br /&gt;
                      A     A&lt;br /&gt;
 &lt;br /&gt;
      21    25&lt;br /&gt;
   4 A   - A  }&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the much faster alternative employed by &amp;lt;code&amp;gt;KnotTheory`&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$KB1[pd_PD] := KB1[pd, {}, 1];&lt;br /&gt;
KB1[pd_PD, inside_, web_] := Module[&lt;br /&gt;
  {pos = First[Ordering[Length[Complement[List @@ #, inside]]&amp;amp; /@ pd]]},&lt;br /&gt;
  pd[[pos]] /.  X[a_,b_,c_,d_] :&amp;gt; KB1[&lt;br /&gt;
    Delete[pd, pos],&lt;br /&gt;
    Union[inside, {a,b,c,d}],&lt;br /&gt;
    Expand[web*(A P[a,d] P[b,c]+1/A P[a,b] P[c,d])] //. {&lt;br /&gt;
      P[e_,f_]P[f_,g_] :&amp;gt; P[e,g], P[e_,_]^2 :&amp;gt; P[e,e], P[e_,e_] -&amp;gt; -A^2-1/A^2&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
];&lt;br /&gt;
KB1[PD[],_,web_] := Expand[web]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{In|&lt;br /&gt;
n  = 18 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;KB1[pd_PD] := KB1[pd, {}, 1];&lt;br /&gt;
KB1[pd_PD, inside_, web_] := Module[&lt;br /&gt;
  {pos = First[Ordering[Length[Complement[List @@ #, inside]]&amp;amp; /@ pd]]},&lt;br /&gt;
  pd[[pos]] /.  X[a_,b_,c_,d_] :&amp;gt; KB1[&lt;br /&gt;
    Delete[pd, pos],&lt;br /&gt;
    Union[inside, {a,b,c,d}],&lt;br /&gt;
    Expand[web*(A P[a,d] P[b,c]+1/A P[a,b] P[c,d])] //. {&lt;br /&gt;
      P[e_,f_]P[f_,g_] :&amp;gt; P[e,g], P[e_,_]^2 :&amp;gt; P[e,e], P[e_,e_] -&amp;gt; -A^2-1/A^2&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
];&lt;br /&gt;
KB1[PD[],_,web_] := Expand[web]&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--$$time1 = Timing[KB1[PD[Link[11, Alternating, 548]]]]$$--&amp;gt;&lt;br /&gt;
&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;&lt;br /&gt;
{{InOut|&lt;br /&gt;
n  = 19 |&lt;br /&gt;
in = &amp;lt;nowiki&amp;gt;time1 = Timing[KB1[PD[Link[11, Alternating, 548]]]]&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
out= &amp;lt;nowiki&amp;gt;                -23    5    10    -3            5      13      17&lt;br /&gt;
{0.031 Second, A    + --- + -- + A   + 6 A + 6 A  + 5 A   - 5 A   + &lt;br /&gt;
                       15    7&lt;br /&gt;
                      A     A&lt;br /&gt;
 &lt;br /&gt;
      21    25&lt;br /&gt;
   4 A   - A  }&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;!--END--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(So on [[L11a548]] &amp;lt;code&amp;gt;KB1&amp;lt;/code&amp;gt; is &amp;lt;!--$time0[[1,1]]$--&amp;gt;&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;1.594&amp;lt;!--END--&amp;gt;/&amp;lt;!--$time1[[1,1]]$--&amp;gt;&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;0.031&amp;lt;!--END--&amp;gt; ~ &amp;lt;!--$Round[time0[[1,1]]/time1[[1,1]]]$--&amp;gt;&amp;lt;!--Robot Land, no human edits to &amp;quot;END&amp;quot;--&amp;gt;51&amp;lt;!--END--&amp;gt; times faster than &amp;lt;code&amp;gt;KB0&amp;lt;/code&amp;gt;.)&lt;br /&gt;
&lt;br /&gt;
The idea here is to maintain a &amp;quot;computation front&amp;quot;, a planar domain&lt;br /&gt;
which starts empty and gradualy increases until the whole link diagram is&lt;br /&gt;
enclosed. Within the front, the rules defining the Kauffman bracket, &lt;br /&gt;
Equation {{Equation Ref|KBDef}}, are applied and the result is expanded as much&lt;br /&gt;
as possible. Outside of the front the link diagram remains untouched. At&lt;br /&gt;
every step we choose a crossing outside the front with the most legs&lt;br /&gt;
inside and &amp;quot;conquer&amp;quot; it -- apply the rules of {{Equation Ref|KBDef}} and&lt;br /&gt;
expand again. As our new outpost is maximally connected to our old&lt;br /&gt;
territory, the length of the boundary is increased in a minimal way, and&lt;br /&gt;
hence the size of the &amp;quot;web&amp;quot; within our front remains as small as&lt;br /&gt;
possible and thus quick to manipulate.&lt;br /&gt;
&lt;br /&gt;
In further detail, the routine &amp;lt;code&amp;gt;KB1[pd, inside, web]&amp;lt;/code&amp;gt; computes the&lt;br /&gt;
Kauffman bracket assuming the labels of the edges inside the front are in&lt;br /&gt;
the variable &amp;lt;code&amp;gt;inside&amp;lt;/code&amp;gt;, the already-computed inside of the front is in&lt;br /&gt;
the variable &amp;lt;code&amp;gt;web&amp;lt;/code&amp;gt; and the part of the link diagram yet untouched is&lt;br /&gt;
&amp;lt;code&amp;gt;pd&amp;lt;/code&amp;gt;. The single argument &amp;lt;code&amp;gt;KB1[pd]&amp;lt;/code&amp;gt; simply calls&lt;br /&gt;
&amp;lt;code&amp;gt;KB1[pd, inside, web]&amp;lt;/code&amp;gt; with an empty &amp;lt;code&amp;gt;inside&amp;lt;/code&amp;gt; and with &amp;lt;code&amp;gt;web&amp;lt;/code&amp;gt; set to 1. The three argument &amp;lt;code&amp;gt;KB1[pd, inside, web]&amp;lt;/code&amp;gt; finds the position of the crossing maximmally connected to the front using the somewhat&lt;br /&gt;
cryptic assignment&lt;br /&gt;
&lt;br /&gt;
 pos = First[Ordering[Length[Complement[List @@ #, inside]]&amp;amp; /@ pd]]}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;KB1[pd, inside, web]&amp;lt;/code&amp;gt; then recursively calls&lt;br /&gt;
itself with that crossing removed from &amp;lt;code&amp;gt;pd}, with its legs&lt;br /&gt;
added to the &amp;lt;code&amp;gt;inside&amp;lt;/code&amp;gt;, and with &amp;lt;code&amp;gt;web&amp;lt;/code&amp;gt; updated in accordance&lt;br /&gt;
with {{Equation Ref|KBDef}}. Finally, when &amp;lt;code&amp;gt;pd&amp;lt;/code&amp;gt; is empty, the output is&lt;br /&gt;
simply the value of &amp;lt;code&amp;gt;web&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{note|Kauffman}}  L. H. Kauffman, &#039;&#039;On knots&#039;&#039;,  Princeton Univ. Press, Princeton, 1987.&lt;/div&gt;</summary>
		<author><name>RicalRocna</name></author>
	</entry>
</feed>