> # ``spinr3z.mws'' > # This program computes the quandle cocycle invariant > # for 2-twist spun knots for the table with R_3 with Z coefficient. > restart: > with(LinearAlgebra): > > g:=proc(a, b) # Quandle operation for R_3 > 2*b - a mod 3 : end: > > # Forming vector entries. The following subs are determined from > # earlier experiments. > f:=array(0..2,0..2,0..2,1..3): > f[1,0,2,2]:=0: > f[2,0,1,3]:=0: > f[2,1,0,3]:=0: > f[2,1,2,2]:=0: > f[2,1,2,3]:=0: > f[0,2,1,2]:=0: > f[1,2,1,3]:=0: > f[1,2,1,2]:=0: > f[1,2,0,3]:=0: > f[2,1,2,1]:=0: > f[2,1,0,2]:=0: > > f[1,0,2,1] := -q[1]: > f[1,0,1,3] := 0: > f[0,2,1,1] := 0: > f[0,2,0,2] := 0: > f[0,1,0,1] := 0: > f[0,1,2,2] := 0: > f[2,0,1,1] := 0: > f[2,0,2,3] := 0: > f[0,2,0,3] := 0: > f[0,1,0,2] := 0: > f[1,2,0,1] := 0: > f[1,2,1,1] := q[1]: > f[2,1,0,1] := q[2]: > f[0,1,2,1] := q[2]: > f[2,0,2,1] := -q[2]: > f[1,2,0,2] := q[1]: > f[2,0,2,2] := 0: > f[2,0,1,2] := 0: > f[1,0,1,2] := 0: > f[1,0,2,3] := 0: > f[0,2,1,3] := 0: > f[0,1,0,3] := 0: > f[0,1,2,3] := q[1]: > f[1,0,1,1] := -q[1]: > f[0,2,0,1] := -q[2] - q[1] : > > # Quandle cocycle conditions. > for i from 0 to 2 do > for j from 0 to 2 do > for k from 1 to 3 do > f[i,i,j,k]:=0 : > f[j,i,i,k]:=0 : > f[i,i,i,k]:=0 : > od: od: od: > > # Forming vectors, h is a 3-cocycle. > h:=array(0..2,0..2,0..2): > for i from 0 to 2 do > for j from 0 to 2 do > for k from 0 to 2 do > h[i,j,k]:=Vector([f[i,j,k,1],f[i,j,k,2],f[i,j,k,3]]): > od: od: od: > > # Defining matrices, 1 = (2 3), 2 = (1 3), 3 = 0 = (1 2). > M[1]:=<<1,0,0>|<0,0,1>|<0,1,0>>: > M[2]:=<<0,0,1>|<0,1,0>|<1,0,0>>: > M[0]:=<<0,1,0>|<1,0,0>|<0,0,1>>: > > # Defining the 3-cocycle condition. > for x from 0 to 2 do > for y from 0 to 2 do > for z from 0 to 2 do > for w from 0 to 2 do > E[x,y,z,w]:= M[w].h[x,y,z] + h[g(x,z),g(y,z),w] + > M[g(g(y,z),w)].h[x,z,w] > + h[y,z,w] - M[g(g(g(x,y),z),w)].h[y,z,w] - h[g(x,y),z,w] > - M[g(z,w)].h[x,y,w] - h[g(x,w),g(y,w),g(z,w)]: > od: od: od: od: > > # Defining the set of equations. > EQ:=[]: > for x from 0 to 2 do > for y from 0 to 2 do > for z from 0 to 2 do > for w from 0 to 2 do > for u from 1 to 3 do > EQ:=[ op(EQ), E[x,y,z,w][u]=0 ] : > od: od: od: od: od: > Eq:=convert(EQ, set): # Converting the list EQ to a set Eq. > > print(Eq); # This is to check that the subs give a 3-cocycle. > # This should give {0=0} if that's the case. > > ## Defining the set of variables. > ## This was used earlier for solving the 3-cocy relation. > #VAR:=[]: > #for x from 0 to 2 do > #for y from 0 to 2 do > #for z from 0 to 2 do > #for w from 1 to 3 do > #VAR:=[ op(VAR), f[x,y,z,w] ] : > #od: od: od: od: > #Var:=convert(VAR, set): > #Var:=subsop(1=NULL, Var): > ## The first entry, 0, is deleted. > ## Solving the cocycle conditions: > #Sol:=solve(Eq, Var); > > > {0 = 0} > # Braid words of the knot table, brind is the braid index. > # 3-colorable ones renumbered. > bw[1]:= [1,1,1]: brind[1]:=2: #3_1 > #bw[2]:= [1,-2,1,-2]: brind[2]:=3: #4_1 > #bw[3]:= [1,1,1,1,1]: brind[3]:=2: #5_1 > #bw[4]:= [1,1,2,2,-1,2]: brind[4]:=3: #5_2 > #bw[5] > bw[2]:= [-1,2,-1,3,-2,3,2]: brind[2]:=4: #brind[5]:=4: #6_1 > #bw[6]:= [-1,2,-1,2,2,2]: brind[6]:=3: > #bw[7]:= [-1,2,2,-1,-1,2]: brind[7]:=3: #6_3 > #bw[8]:= [1,1,1,1,1,1,1]: brind[8]:=2: #7_1 > #bw[9]:= [-1,3,3,3,2,1,1,-3,2]: brind[9]:=4: > #bw[10]:= [1,1,2,-1,2,2,2,2]: brind[10]:=3: > #bw[11] > bw[3]:= [1,1,2,3,3,-1,2,-3,2]: brind[3]:=4: > #bw[12]:= [1,1,1,1,2,-1,2,2]: brind[12]:=3: > #bw[13]:= [1,-2,-1,-1,3,2,2,2,3]: brind[13]:=4: > #bw[14] > bw[4]:= [1,-3,2,-3,2,-1,2,-3,2]: brind[4]:=4: #7_7 > #bw[15]:= [-1,2,3,-2,-1,4,4,3,2,-4]: brind[15]:=5: #8_1 > #bw[16]:= [-1,2,2,2,2,2,-1,2]: brind[16]:=3: > #bw[17]:= [-1,-1,-2,1,4,4,3,-4,-2,3]: brind[17]:=5: > #bw[18]:= [1,1,1,3,-2,-3,-3,1,-2]: brind[18]:=4: > #bw[19] > bw[5]:= [1,1,1,-2,1,1,1,-2]: brind[5]:=3: #8_5 > #bw[20]:= [-1,2,-1,-3,2,2,2,3,3]: brind[20]:=4: > #bw[21]:= [1,1,1,1,-2,-2,1,-2]: brind[21]:=3: > #bw[22]:= [-1,2,1,1,-3,2,2,-3,-3]: brind[22]:=4: > #bw[23]:= [-1,2,-1,-1,-1,2,2,2]: brind[23]:=3: > #bw[24] > bw[6]:= [-1,2,2,-1,-1,2,2,2]: brind[6]:=3: #8_10 > #bw[25] > bw[7]:= [-1,2,2,-3,2,3,3,-1,2]: brind[7]:=4: > #bw[26]:= [1,-2,3,-4,3,-4,2,1,-3,-2]: brind[26]:=5: > #bw[27]:= [1,1,2,-3,2,-1,-3,-3,2]: brind[27]:=4: > #bw[28]:= [1,1,2,2,-1,-3,2,-3,2]: brind[28]:=4: > #bw[29] > bw[8]:= [1,1,-2,1,3,3,2,2,3]: brind[8]:=4: #8_15 > #bw[30]:= [1,1,-2,1,1,-2,1,-2]: brind[30]:=3: > #bw[31]:= [-1,2,-1,2,2,-1,-1,2]: brind[31]:=3: > #bw[32] > bw[9]:= [1,-2,1,-2,1,-2,1,-2]: brind[9]:=3: > #bw[33] > bw[10]:= [1,2,1,2,1,2,2,1]: brind[10]:=3: > #bw[34] > bw[11]:= [1,1,1,2,-1,-1,-1,2]: brind[11]:=3: #8_20 > #bw[35] > bw[12]:= [1,-2,-2,1,1,2,2,2]: brind[12]:=3: #8_21 > #bw[36] > bw[13]:= [1,1,1,1,1,1,1,1,1]: brind[13]:=2: #9_1 > #bw[37] > bw[14]:= [1,2,3,4,4,4,3,-4,2,1,-3,-2]: brind[14]:=5: > #bw[38]:= [1,-2,1,1,1,1,1,1,2,2]: brind[38]:=3: > #bw[39] > bw[15]:= [-1,3,2,1,1,2,3,3,3,3,-2]: brind[15]:=4: > #bw[40]:= [1,1,2,-1,3,-2,3,4,4,3,-4,2]: brind[40]:=5: #9_5 > #bw[41] > bw[16]:= [1,1,2,2,1,1,1,1,1,-2]: brind[16]:=3: > #bw[42]:= [1,1,1,2,3,3,-1,2,2,2,-3]: brind[42]:=4: > #bw[43]:= [1,-2,3,-1,-1,-4,3,-2,3,3,4,3]: brind[43]:=5: > #bw[44]:= [1,1,1,-2,1,1,1,1,2,2]: brind[44]:=3: > #bw[45] > bw[17]:= [-1,2,1,1,2,2,2,-3,2,3,3]: brind[17]:=4: #9_10 > #bw[46] > bw[18]:= [-1,2,-3,2,-1,2,2,2,2,3,2]: brind[18]:=4: > #bw[47]:= [1,-2,-1,-1,3,2,2,2,4,4,3,-4]: brind[47]:=5: > #bw[48]:= [1,1,2,-3,2,-1,3,3,2,2,2]: brind[48]:=4: > #bw[49]:= [1,4,4,-3,2,-3,2,-3,-1,-4,2,2,3,-2]: brind[49]:=5: > #bw[50] > bw[19]:= [1,-2,1,3,-2,4,-3,4,4,3]: brind[19]:=5: #9_15 > #bw[51] > bw[20]:= [1,1,-2,1,1,1,2,2,2,2]: brind[20]:=3: > #bw[52] > bw[21]:= [1,1,1,3,-2,1,-2,-3,-2,1,-2]: brind[21]:=4: > #bw[53]:= [1,1,-3,2,-1,2,2,3,3,2,2]: brind[53]:=4: > #bw[54]:= [1,1,2,-1,-3,-4,-3,2,-3,2,4,-3]: brind[54]:=5: > #bw[55]:= [1,2,2,-3,2,-1,2,-3,2,2,2]: brind[55]:=4: #9_20 > #bw[56]:= [-1,-1,3,-4,3,-2,1,3,4,4,2,2]: brind[56]:=5: > #bw[57]:= [1,-2,3,3,3,-2,3,-1,-2,3,-2]: brind[57]:=4: > #bw[58] > bw[22]:= [1,-2,1,1,2,3,3,3,2,-3,2]: brind[22]:=4: > #bw[59] > bw[23]:= [1,3,3,-2,1,3,-2,-2,-2]: brind[23]:=4: > #bw[60]:= [-1,2,-1,-4,-3,2,4,4,3,4,4,2,2,-3]: brind[60]:=5: #9_25 > #bw[61]:= [-1,2,2,2,3,2,-1,2,-1,-3,2]: brind[61]:=4: > #bw[62]:= [-1,2,-1,-1,-3,2,-1,2,2,3,2]: brind[62]:=4: > #bw[63] > bw[24]:= [1,1,3,3,-2,-2,1,3,-2]: brind[24]:=4: > #bw[64] > bw[25]:= [-1,2,-3,2,-1,2,-3,2,2]: brind[25]:=4: > #bw[65]:= [1,-3,-3,2,-3,-1,2,1,1,-3,2]: brind[65]:=4: #9_30 > #bw[66]:= [-1,2,2,-3,2,2,-1,2,3,-1,2]: brind[66]:=4: > #bw[67]:= [-1,2,3,-1,2,-1,3,3,2,-3,2]: brind[67]:=4: > #bw[68]:= [-1,-1,-1,2,-1,2,2,3,1,-2,3]: brind[68]:=4: > #bw[69] > bw[26]:= [1,-2,3,-2,1,-2,3,1,-2]: brind[26]:=4: > #bw[70] > bw[27]:= [1,3,3,-4,-2,1,2,3,3,2,-3,4,-3,2]: brind[27]:=5: #9_35 > #bw[71]:= [-1,2,2,2,-3,2,3,3,-1,2,3]: brind[71]:=4: > #bw[72] > bw[28]:= [1,-2,3,-2,3,-1,4,-3,-2,4,3,-2]: brind[28]:=5: > #bw[73] > bw[29]:= [1,1,2,3,3,2,2,-1,2,-3,2]: brind[29]:=4: > #bw[74]:= [-1,-3,2,4,3,3,-1,2,2,3,4,-2]: brind[74]:=5: > #bw[75] > bw[30]:= [1,3,-2,3,1,-2,1,3,-2]: brind[30]:=4: #9_40 > #bw[76]:= [-1,2,2,-4,3,-4,-2,1,-3,2,3,-4,3,2]: brind[76]:=5: > #bw[77]:= [1,1,1,3,-2,3,-1,-1,-2]: brind[77]:=4: > #bw[78]:= [1,2,1,1,2,2,3,-2,1,-2,-3]: brind[78]:=4: > #bw[79]:= [-1,2,-1,3,-2,3,2,2,-3]: brind[79]:=4: > #bw[80]:= [1,-2,1,3,2,2,2,3,-2]: brind[80]:=4: #9_45 > #bw[81] > bw[31]:= [1,3,2,-1,-3,2,1,3,-2]: brind[31]:=4: > #bw[82] > bw[32]:= [-1,2,3,-1,2,-1,2,3,2]: brind[32]:=4: > #bw[83] > bw[33]:= [1,1,-2,3,2,2,-1,-3,2,-3,2]: brind[33]:=4: > #bw[84]:= [1,1,2,2,3,2,-1,2,2,3,-2]: brind[84]:=4: #9_49 > > > for KT from 1 to 33 do # KT is the number in the Knot Table. Up to 84. > > print(Knot, KT); > > # Setting up the state-sum terms. > SST:= [ ] : > > # Defining Burau rep for R_3, acting from the right to row vectors. > Burau:=linalg[matrix](2,2,[0,-1,1,2]): > Burinv:=linalg[matrix](2,2,[2,1,-1,0]): > > for j0 from 1 to brind[KT]-1 do # Copying the Burau matrix into bigger > ones. > B[j0]:=array(1..brind[KT],1..brind[KT]): > B[-j0]:=array(1..brind[KT],1..brind[KT]): > od: > ID:=Matrix(1..brind[KT],1..brind[KT],shape=identity); > for j1 from 1 to brind[KT]-1 do > for j2 from 1 to brind[KT] do > for j3 from 1 to brind[KT] do > B[j1][j2,j3]:=linalg[copyinto](Burau, ID, j1,j1)[j2,j3]: > B[-j1][j2,j3]:=linalg[copyinto](Burinv, ID, j1,j1)[j2,j3]: > od: od: od: > > # Color vectors. > for jj3 from 1 to (nops(bw[KT])+1) do > Color[jj3]:=array(1..brind[KT]): > od: > > # Producing all color vectors. > num:=3^(brind[KT]) : > for indx from 0 to (num-1) do # One color at a time. > > for jj5 from 1 to brind[KT] do > Color[1][jj5]:=iquo(indx,3^(jj5-1)) mod 3: > od: > > # Computing all color vectors. > for jj6 from 1 to nops(bw[KT]) do > Newcolorvec[jj6]:=evalm(Color[jj6] &* B[bw[KT][jj6]]): > for jj8 from 1 to brind[KT] do > Color[jj6+1][jj8]:=map( z -> z mod 3, Newcolorvec[jj6][jj8]): > od: > od: > # Color[s][h] is the color just above the s-th generator > # on the h-th string from the left. > > > SSTcontri:=Vector([0,0,0]): > # State-sum contributions from triple points. > > # Finding if the colors match. > ColorDiff0:=evalm(Color[1]-Color[nops(bw[KT])+1]); > ColDiffMatch0:=sum(abs(ColorDiff0[jj]),jj=1..brind[KT]); > # This is zero iff the top color vec matches the bottom. > > # Color vecs after two twists. > for k3 from 1 to nops(bw[KT])+1 do > Colortwists[k3]:=map( z -> g( g(z, Color[1][1]), Color[1][1] ) , > Color[k3] ) : > od: > > # Finding if the colors match after two twists. > for k4 from 1 to nops(bw[KT])+1 do > ColorDiff[k4]:=evalm(Color[k4]-Colortwists[k4]): > ColDiffMatch[k4]:=sum(abs(ColorDiff[k4][k5]),k5=1..brind[KT]): > od: > ColDiffMatch1:=sum(ColDiffMatch[k6], k6=1..(nops(bw[KT])+1)): > # This is zero iff the top color vec matches the bottom. > # In fact, Angela Harris noted that this is not necessary, since > # 2-twist spun of 3-colorable knots are 3-colorable for any color. > # But this is kept for future use. > > if ColDiffMatch0 + ColDiffMatch1=0 then > > > for s from 1 to nops(bw[KT]) do > > # Computing the weight in front of the cocycle. Same as classical > case. > > WT[0]:=Matrix(1..3,1..3,shape=identity): > WT[1]:=M[Color[s][brind[KT]]]: > # WT[1] is the weight for the crossing of \sigma_{n-2}. The target > region is > # to the right of the crossing. > for k7 from 1 to (brind[KT]-1) do > WT[k7+1]:=MatrixMatrixMultiply( WT[k7], M[Color[s][brind[KT]-k7]] ) : > od: > > # The weight WGT[1] for the \signa_1 is WT[n-2], > # and WGT[2]=WT[n-3], ... , WGT[n-2]=WT[1]. > > if brind[KT]>2 then > for k77 from 1 to (brind[KT]-2) do > WGT[k77]:=MatrixMatrixMultiply(MatrixInverse(M[Color[1][brind[KT]]]), > WT[brind[KT]-k77-1]): > od: > WGT[brind[KT]-1]:=MatrixInverse(M[Color[1][brind[KT]]]): > else > WGT[1]:=MatrixInverse(M[Color[1][brind[KT]]]): > fi: > > > # Computing the face color. > > FFC[0]:=Color[1][brind[KT]]: > # FFC[0] is the face color of the right-most region. > for k777 from 0 to (brind[KT]-1) do > FFC[k777+1]:=g( FFC[k777], Color[s][brind[KT]-k777] ) : # Note > \bar{*}=* for R_n. > od: > # FFC[1] is the second-most-right region's color, etc. > # This g should be the inverse quandle operation, but it's the same > for R_n. > > for k8 from 1 to (brind[KT]-1) do > FC[k8]:=FFC[brind[KT]-k8+1]: > od: > > > if (bw[KT][s])>0 then > > SSTcontri:=evalm( SSTcontri - > MatrixVectorMultiply(WGT[abs(bw[KT][s])], > h[FC[abs(bw[KT][s])], Color[s][abs(bw[KT][s])], > Color[s][abs(bw[KT][s])+1] ]) > - > MatrixVectorMultiply(WGT[abs(bw[KT][s])], > h[g(FC[abs(bw[KT][s])], Color[1][brind[KT]]), > g(Color[s][abs(bw[KT][s])], Color[1][brind[KT]]), > g(Color[s][abs(bw[KT][s])+1], Color[1][brind[KT]]) ] ) > + > MatrixVectorMultiply(WGT[abs(bw[KT][s])], > h[Color[s][abs(bw[KT][s])], Color[s][abs(bw[KT][s])+1], > Color[1][brind[KT]]]) > + > MatrixVectorMultiply(WGT[abs(bw[KT][s])], > h[ g(Color[s][abs(bw[KT][s])], Color[1][brind[KT]]), > g(Color[s][abs(bw[KT][s])+1], Color[1][brind[KT]]), > Color[1][brind[KT]] ] ) > ): > > else > SSTcontri:=evalm( SSTcontri + > MatrixVectorMultiply(WGT[abs(bw[KT][s])], > h[FC[abs(bw[KT][s])], g(Color[s][abs(bw[KT][s])+1], > Color[s][abs(bw[KT][s])]), > Color[s][abs(bw[KT][s])] ]) > + > MatrixVectorMultiply(WGT[abs(bw[KT][s])], > h[g(FC[abs(bw[KT][s])], Color[1][brind[KT]]), > g(g(Color[s][abs(bw[KT][s])+1], Color[s][abs(bw[KT][s])]), > Color[1][brind[KT]]), > g(Color[s][abs(bw[KT][s])], Color[1][brind[KT]]) ] ) > - > MatrixVectorMultiply(WGT[abs(bw[KT][s])], > h[g(Color[s][abs(bw[KT][s])+1], Color[s][abs(bw[KT][s])]), > Color[s][abs(bw[KT][s])], Color[1][brind[KT]] ] ) > - > MatrixVectorMultiply(WGT[abs(bw[KT][s])], > h[g(g(Color[s][abs(bw[KT][s])+1], Color[s][abs(bw[KT][s])]), > Color[1][brind[KT]]), > g(Color[s][abs(bw[KT][s])], Color[1][brind[KT]]), > Color[1][brind[KT]] ] ) > ): > > fi: > > > od: # Closing the state-sum term, for s. > > SST:=[ op(SST), evalm(SSTcontri) ]: > #map(z -> z mod 3, SSTcontri) ]: > #map(z -> z mod 3, subs(Sol, evalm(SSTcontri)) ]: > > fi: # Closing the case when it colors. > > > od: # Closing one color here at a time, for indx. > > > print(SST); > > od: # Closing KT. > > Knot, 1 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] Knot, 2 [[0, 0, 0], [-q[2], 0, q[2]], [q[2], q[1], -q[2] - q[1]], [q[1], 0, -q[1]], [0, 0, 0], [0, -q[1], q[1]], [q[2] - q[1], -q[2] + q[1], 0], [-q[2], q[2] - q[1], q[1]], [0, 0, 0]] Knot, 3 [[0, 0, 0], [-q[2], -2 q[1], 2 q[1] + q[2]], [-q[1] + q[2], q[1], -q[2]], [-q[1], 2 q[1], -q[1]], [0, 0, 0], [-q[1], -q[1], 2 q[1]], [q[2], -q[2], 0], [-q[2], q[2], 0], [0, 0, 0]] Knot, 4 [[0, 0, 0], [q[1], 0, -q[1]], [0, -q[1], q[1]], [-q[1], q[1], 0], [0, 0, 0], [0, -q[1], q[1]], [-q[1], q[1], 0], [q[1], 0, -q[1]], [0, 0, 0]] Knot, 5 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] Knot, 6 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] Knot, 7 [[0, 0, 0], [q[2], 0, -q[2]], [-q[2], -q[1], q[2] + q[1]], [-q[1], 0, q[1]], [0, 0, 0], [0, q[1], -q[1]], [q[1] - q[2], q[2] - q[1], 0], [q[2], q[1] - q[2], -q[1]], [0, 0, 0]] Knot, 8 [[0, 0, 0], [0, -q[1], q[1]], [-q[1], q[1], 0], [-q[1], q[1], 0], [0, 0, 0], [0, -q[1], q[1]], [0, -q[1], q[1]], [-q[1], q[1], 0], [0, 0, 0]] Knot, 9 [[0, 0, 0], %1, %3, [0, 0, 0], %3, %1, [0, 0, 0], %3, %3, %2, [0, 0, 0], %2, %2, [0, 0, 0], %3, %3, [0, 0, 0], %2, %1, %2, [0, 0, 0], %1, %1, [0, 0, 0], %2, %1, [0, 0, 0]] %1 := [q[1], 0, -q[1]] %2 := [-q[1], q[1], 0] %3 := [0, -q[1], q[1]] Knot, 10 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] Knot, 11 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] Knot, 12 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] Knot, 13 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] Knot, 14 [[0, 0, 0], [0, -q[1], q[1]], [0, -q[1], q[1]], [-q[1], q[1], 0], [0, 0, 0], [-q[1], q[1], 0], [q[1], 0, -q[1]], [q[1], 0, -q[1]], [0, 0, 0]] Knot, 15 [[0, 0, 0], [0, q[1], -q[1]], [q[1], -q[1], 0], [q[1], -q[1], 0], [0, 0, 0], [0, q[1], -q[1]], [0, q[1], -q[1]], [q[1], -q[1], 0], [0, 0, 0]] Knot, 16 [[0, 0, 0], [2 q[1], 0, -2 q[1]], [0, -2 q[1], 2 q[1]], [-2 q[1], 2 q[1], 0], [0, 0, 0], [0, -2 q[1], 2 q[1]], [-2 q[1], 2 q[1], 0], [2 q[1], 0, -2 q[1]], [0, 0, 0]] Knot, 17 [[0, 0, 0], [-q[2] - q[1], 0, q[1] + q[2]], [q[2], -q[1], -q[2] + q[1]], [0, 0, 0], [0, 0, 0], [-2 q[1], q[1], q[1]], [-q[1] + q[2], -q[2] + 2 q[1], -q[1]], [-q[2] + q[1], -2 q[1] + q[2], q[1]], [0, 0, 0]] Knot, 18 [[0, 0, 0], %1, %1, %1, [0, 0, 0], %1, %1, %1, [0, 0, 0]] %1 := [q[1], 0, -q[1]] Knot, 19 [[0, 0, 0], [0, -q[1], q[1]], [0, -q[1], q[1]], [-q[1], q[1], 0], [0, 0, 0], [-q[1], q[1], 0], [q[1], 0, -q[1]], [q[1], 0, -q[1]], [0, 0, 0]] Knot, 20 [[0, 0, 0], [-q[1], 0, q[1]], [q[1], -q[1], 0], [-q[1], 0, q[1]], [0, 0, 0], [0, q[1], -q[1]], [q[1], -q[1], 0], [0, q[1], -q[1]], [0, 0, 0]] Knot, 21 [[0, 0, 0], %1, %1, %1, [0, 0, 0], %1, %1, %1, [0, 0, 0]] %1 := [-q[1], 0, q[1]] Knot, 22 [[0, 0, 0], [0, -q[1], q[1]], [-q[1], q[1], 0], [-q[1], q[1], 0], [0, 0, 0], [0, -q[1], q[1]], [0, -q[1], q[1]], [-q[1], q[1], 0], [0, 0, 0]] Knot, 23 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] Knot, 24 [[0, 0, 0], [-q[1], 0, q[1]], [0, q[1], -q[1]], [0, q[1], -q[1]], [0, 0, 0], [-q[1], 0, q[1]], [-q[1], 0, q[1]], [0, q[1], -q[1]], [0, 0, 0]] Knot, 25 [[0, 0, 0], [-q[2], -q[1], q[1] + q[2]], [q[2], 0, -q[2]], [0, q[1], -q[1]], [0, 0, 0], [-q[1], 0, q[1]], [q[2], -q[2] + q[1], -q[1]], [-q[2] + q[1], q[2] - q[1], 0], [0, 0, 0]] Knot, 26 [[0, 0, 0], %1, %1, %1, [0, 0, 0], %1, %1, %1, [0, 0, 0]] %1 := [-q[1], 0, q[1]] Knot, 27 [[0, 0, 0], %1, [-q[2], -q[2] - 2 q[1], 2 q[1] + 2 q[2]], %1, [q[1], 0, -q[1]], [q[1], q[2], -q[2] - q[1]], %1, [0, -q[2], q[2]], [0, q[1] + q[2], -q[2] - q[1]], [0, 2 q[2], -2 q[2]], %1, [0, q[1], -q[1]], %1, [0, 0, 0], [0, q[1], -q[1]], [q[1], -q[1], 0], %1, [-q[1], -2 q[2], q[1] + 2 q[2]], [-q[1], 2 q[1] - q[2], -q[1] + q[2]], [q[1], -q[1] + q[2], -q[2]], %1, [0, -q[2] + q[1], -q[1] + q[2]], [-2 q[1], 0, 2 q[1]], %1, [-q[2] + q[1], -q[1] + 2 q[2], -q[2]], [0, q[1], -q[1]], [0, 0, 0]] %1 := [-q[1], 0, q[1]] Knot, 28 [[0, 0, 0], [-q[2], q[1], -q[1] + q[2]], [q[2] + q[1], -q[1], -q[2]], [q[2], q[1], -q[2] - q[1]], [-q[2], 0, q[2]], %2, [-q[2], 0, q[2]], %1, [q[2], q[1], -q[2] - q[1]], %2, %1, %1, [q[1], -2 q[2] - 2 q[1], 2 q[2] + q[1]], [0, 0, 0], [q[1], 2 q[2], -2 q[2] - q[1]], %2, %2, %1, [-q[1] + q[2], q[1] - q[2], 0], %2, [-q[2], -q[1] + q[2], q[1]], %1, [-q[2], -q[1] + q[2], q[1]], [-q[1] + q[2], q[1] - q[2], 0], [q[2], -q[2] - q[1], q[1]], [-q[2], q[2], 0], [0, 0, 0]] %1 := [0, -q[1], q[1]] %2 := [q[1], 0, -q[1]] Knot, 29 [[0, 0, 0], [-q[2], -2 q[1], 2 q[1] + q[2]], [-q[1] + q[2], q[1], -q[2]], [-q[1], 2 q[1], -q[1]], [0, 0, 0], [-q[1], -q[1], 2 q[1]], [q[2], -q[2], 0], [-q[2], q[2], 0], [0, 0, 0]] Knot, 30 [[0, 0, 0], [-q[1], 0, q[1]], [0, q[1], -q[1]], [0, q[1], -q[1]], [0, 0, 0], [-q[1], 0, q[1]], [-q[1], 0, q[1]], [0, q[1], -q[1]], [0, 0, 0]] Knot, 31 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [q[2] + q[1], 0, -q[2] - q[1]], [q[1], -q[1], 0], [0, 0, 0], [-q[2] - q[1], 0, q[2] + q[1]], [0, 0, 0], [0, q[1], -q[1]], [0, q[1], -q[1]], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [q[1], -q[1], 0], [q[1], -q[1], 0], [0, 0, 0], [-q[2], q[2], 0], [0, 0, 0], [0, q[1], -q[1]], [q[2], -q[2], 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] Knot, 32 [[0, 0, 0], %1, %1, %1, [-q[2] - q[1], 0, q[1] + q[2]], [0, q[1], -q[1]], %1, [q[1], -q[1], 0], [q[1] + q[2], 0, -q[2] - q[1]], [0, 0, 0], %1, [q[1], -q[1], 0], %1, [0, 0, 0], %1, [0, q[1], -q[1]], %1, [0, 0, 0], [q[2], -q[2], 0], [0, q[1], -q[1]], %1, [q[1], -q[1], 0], [-q[2], q[2], 0], %1, %1, %1, [0, 0, 0]] %1 := [q[1], 0, -q[1]] Knot, 33 [[0, 0, 0], [q[1], 0, -q[1]], [0, -q[1], q[1]], [q[1], -q[1], 0], [-q[2], -2 q[1], 2 q[1] + q[2]], [q[2] + q[1], -q[1], -q[2]], [0, q[1], -q[1]], [-2 q[1] - q[2], q[1], q[2] + q[1]], [-q[1] + q[2], q[1], -q[2]], [-q[1], 2 q[1], -q[1]], [0, q[1], -q[1]], [-q[1], q[1], 0], [-q[1], q[1], 0], [0, 0, 0], [0, -q[1], q[1]], [0, -q[1], q[1]], [q[1], -q[1], 0], [-q[1], -q[1], 2 q[1]], [q[2], -q[2], 0], [-q[2], -q[1] + q[2], q[1]], [q[1], -q[1], 0], [-q[1] + q[2], -q[2] + q[1], 0], [-q[2], q[2], 0], [0, q[1], -q[1]], [-q[1], q[1], 0], [q[1], 0, -q[1]], [0, 0, 0]]