SetDirectory["C:\\drorbn\\AcademicPensieve\\Projects\\HigherRank\\DunfieldKnots"];
Once[<<KnotTheory`];
<<../Rot.m
(Subscript[T, 3])=(Subscript[T, 1])(Subscript[T, 2]);

CCF[ℰ_] := ExpandDenominator@ExpandNumerator@Together[ℰ];
CCF[ℰ_] := Factor[ℰ];
CF[ℰ_List]:=CF/@ℰ;
CF[ℰ_] := Module[{vs=Cases[ℰ,(Subscript[(x|p|π|g), __]),∞]⋃{x,p,ϵ},ps,c},
Total[CoefficientRules[Expand[ℰ], vs] /. (ps_->c_) :> CCF[c](Times@@(vs^ps))] ];

Data

(from Talks/Beijing-2407/theta.nb)

(Subscript[R, 1])[1,i_,j_]=CF[
1/2-(Subscript[T, 3])(Subscript[g, 1,j,i])(Subscript[g, 2,j,i])-(Subscript[g, 3,i,i])+(Subscript[g, 2,j,j])(Subscript[g, 3,i,i])+(Subscript[T, 1])((Subscript[T, 3])-1)(Subscript[g, 1,j,i])(Subscript[g, 3,j,i])+(Subscript[T, 2])((Subscript[T, 3])-1)(Subscript[g, 2,j,i])(Subscript[g, 3,j,i])-(Subscript[T, 2])(Subscript[g, 2,j,i])(Subscript[g, 3,j,j])+((Subscript[g, 1,j,j])(Subscript[g, 2,i,i])+((Subscript[T, 3])-1)(Subscript[g, 1,j,j])(Subscript[g, 2,j,i])-(Subscript[T, 1])(Subscript[g, 1,i,i])(Subscript[g, 2,j,j])-(Subscript[g, 1,j,j])(Subscript[g, 3,i,i])-(Subscript[T, 1])((Subscript[T, 3])-1)(Subscript[g, 1,j,j])(Subscript[g, 3,j,i])+(Subscript[T, 1])(Subscript[g, 1,i,i])(Subscript[g, 3,j,j]))/((Subscript[T, 1])-1)];

(Subscript[R, 1])[-1,i_,j_]=CF[
-1/2-(Subscript[T, 1]^(-1))(Subscript[g, 1,j,i])(Subscript[g, 2,i,i])-(1-(Subscript[T, 1]^(-1))-(Subscript[T, 2]^(-1)))(Subscript[g, 1,j,i])(Subscript[g, 2,j,i])-(Subscript[g, 1,j,j])(Subscript[g, 2,j,i])-(Subscript[g, 1,j,i])(Subscript[g, 2,j,j])+(Subscript[g, 3,i,i])+(Subscript[T, 1]^(-1))(Subscript[g, 1,j,i])(Subscript[g, 3,i,i])-(1-(Subscript[T, 2]^(-1)))(Subscript[g, 2,j,i])(Subscript[g, 3,i,i])-(Subscript[g, 2,j,j])(Subscript[g, 3,i,i])+(1-(Subscript[T, 3]^(-1)))(Subscript[g, 1,j,i])(Subscript[g, 3,j,i])-(1-(Subscript[T, 3]^(-1)))(Subscript[g, 2,i,i])(Subscript[g, 3,j,i])+(2-(Subscript[T, 2]^(-1)))(1-(Subscript[T, 3]^(-1)))(Subscript[g, 2,j,i])(Subscript[g, 3,j,i])+(1-(Subscript[T, 3]^(-1)))(Subscript[g, 2,j,j])(Subscript[g, 3,j,i])+(Subscript[g, 1,j,i])(Subscript[g, 3,j,j])+(Subscript[g, 2,j,i])(Subscript[g, 3,j,j])+((Subscript[T, 1])(1-(Subscript[T, 2]^(-1)))(Subscript[g, 1,i,i])(Subscript[g, 2,j,i])-(Subscript[g, 1,j,j])(Subscript[g, 2,i,i])+(Subscript[T, 1])(Subscript[g, 1,i,i])(Subscript[g, 2,j,j])+(Subscript[g, 1,j,j])(Subscript[g, 3,i,i])-(Subscript[T, 2]^(-1))((Subscript[T, 3])-1)(Subscript[g, 1,i,i])(Subscript[g, 3,j,i])-(Subscript[T, 1])(Subscript[g, 1,i,i])(Subscript[g, 3,j,j]))/((Subscript[T, 1])-1)];

θ[{1,i0_,j0_},{1,i1_,j1_}]=-(Subscript[T, 1])((Subscript[T, 3])-1)(Subscript[g, 1,j1,i0])(Subscript[g, 2,i1,i0])(Subscript[g, 3,j0,i1])+((Subscript[T, 3])-1)(Subscript[g, 1,j1,j0])(Subscript[g, 2,i1,i0])(Subscript[g, 3,j0,i1])+(Subscript[T, 1])((Subscript[T, 3])-1)(Subscript[g, 1,j1,i0])(Subscript[g, 2,j1,i0])(Subscript[g, 3,j0,i1])-((Subscript[T, 3])-1)(Subscript[g, 1,j1,j0])(Subscript[g, 2,j1,i0])(Subscript[g, 3,j0,i1]);

θ[{1,i0_,j0_},{-1,i1_,j1_}]=((Subscript[T, 3])-1)(Subscript[g, 1,j1,i0])(Subscript[g, 2,i1,i0])(Subscript[g, 3,j0,i1])-(Subscript[T, 1]^(-1))((Subscript[T, 3])-1)(Subscript[g, 1,j1,j0])(Subscript[g, 2,i1,i0])(Subscript[g, 3,j0,i1])-((Subscript[T, 3])-1)(Subscript[g, 1,j1,i0])(Subscript[g, 2,j1,i0])(Subscript[g, 3,j0,i1])+(Subscript[T, 1]^(-1))((Subscript[T, 3])-1)(Subscript[g, 1,j1,j0])(Subscript[g, 2,j1,i0])(Subscript[g, 3,j0,i1]);

θ[{-1,i0_,j0_},{1,i1_,j1_}]=CF[
(Subscript[T, 1]^(-1))(Subscript[T, 2]^(-1))((Subscript[T, 3])-1)((Subscript[g, 1,j1,i0])(Subscript[g, 2,i1,i0])(Subscript[g, 3,j0,i1])-(Subscript[T, 1])(Subscript[g, 1,j1,j0])(Subscript[g, 2,i1,i0])(Subscript[g, 3,j0,i1])-(Subscript[g, 1,j1,i0])(Subscript[g, 2,j1,i0])(Subscript[g, 3,j0,i1])+(Subscript[T, 1])(Subscript[g, 1,j1,j0])(Subscript[g, 2,j1,i0])(Subscript[g, 3,j0,i1]))];

θ[{-1,i0_,j0_},{-1,i1_,j1_}]=CF[
(1-(Subscript[T, 3]^(-1))) (-(Subscript[T, 1]^(-1))(Subscript[g, 1,j1,i0]) (Subscript[g, 2,i1,i0]) (Subscript[g, 3,j0,i1])+(Subscript[g, 1,j1,j0]) (Subscript[g, 2,i1,i0]) (Subscript[g, 3,j0,i1])+(Subscript[T, 1]^(-1))(Subscript[g, 1,j1,i0]) (Subscript[g, 2,j1,i0]) (Subscript[g, 3,j0,i1])-(Subscript[g, 1,j1,j0]) (Subscript[g, 2,j1,i0]) (Subscript[g, 3,j0,i1]))];

(Subscript[Γ, 1])[φ_,k_]=-φ/2+φ (Subscript[g, 3,k,k]);

The Programs

θ[K_]:=Module[{Cs,φ,n,A,s,i,j,k,Δ,G,ν,α,β,gEval,c,z},
{Cs,φ}=Rot[K]; n=Length[Cs];
A=IdentityMatrix[2n+1];
Cases[Cs,{s_,i_,j_}:>(A[[{i,j},{i+1,j+1}]]+=(({{-(T^s), (T^s)-1}, {0, -1}})))];
Δ=(T^((-Total[φ]-Total[Cs[[All,1]]])/2))Det[A];
G=Inverse[A]; gEval[ℰ_]:=Factor[ℰ/.(Subscript[g, ν_,α_,β_]):>(G[[α,β]]/.T->(Subscript[T, ν]))];
z=gEval[(∑_(k1=1)^n)(∑_(k2=1)^n)θ[Cs[[k1]],Cs[[k2]]]];
z+=gEval[(∑_(k=1)^n)(Subscript[R, 1])@@Cs[[k]]];
z+=gEval[(∑_(k=1)^(2n))(Subscript[Γ, 1])[φ[[k]],k]];
{Δ,(Δ/.T->(Subscript[T, 1]))(Δ/.T->(Subscript[T, 2]))(Δ/.T->(Subscript[T, 3]))z}//Factor ];

PolyPlot[0]=Graphics[{}];
PolyPlot[p_]:=Module[{crs,m1,m2,maxc,minc,s,hex},
crs=CoefficientRules[(Subscript[T, 1]^(m1=-Exponent[p,(Subscript[T, 1]),Min]))(Subscript[T, 2]^(m2=-Exponent[p,(Subscript[T, 2]),Min]))p,{(Subscript[T, 1]),(Subscript[T, 2])}];
maxc=N@Log@Max@Abs[Last/@crs];
minc=N@Log@Min@Select[Abs[Last/@crs],#>0&];
If[minc==maxc,s[_]=0,s[c_]:=s[c]=(maxc-Log@c)/(maxc-minc)];
hex=Table[{Cos[α],Sin[α]}/Cos[2π/12]/2, {α,2π/12,2π,2π/6}];
Graphics[crs/.({x1_,x2_}->c_):>{
If[c==0,White,Lighter[If[c>0,Red,Blue], 0.88s[Abs@c]]],
Polygon[((({{1, -1/2}, {0, (Sqrt[3])/2}})).{x1+m1,x2+m2}+#)&/@hex] }] ];
PolyPlot[{Δ_,θ_}]:=PolyPlot[θ]

Testing

GraphicsRow[PolyPlot[θ[Knot[#]][[2]]]&
/@{"3_1","K11n34","K11n42"}]

AbsoluteTiming@PolyPlot[θ[EPD[(Subscript[X, 14,1]),(Subscript[(OverBar[X]), 2,29]),(Subscript[X, 3,40]),(Subscript[X, 43,4]),(Subscript[(OverBar[X]), 26,5]),(Subscript[X, 6,95]),(Subscript[X, 96,7]),(Subscript[X, 13,8]),(Subscript[(OverBar[X]), 9,28]),(Subscript[X, 10,41]),(Subscript[X, 42,11]),(Subscript[(OverBar[X]), 27,12]),(Subscript[X, 30,15]),(Subscript[(OverBar[X]), 16,61]),(Subscript[(OverBar[X]), 17,72]),(Subscript[(OverBar[X]), 18,83]),(Subscript[X, 19,34]),(Subscript[(OverBar[X]), 89,20]),(Subscript[(OverBar[X]), 21,92]),(Subscript[(OverBar[X]), 79,22]),(Subscript[(OverBar[X]), 68,23]),(Subscript[(OverBar[X]), 57,24]),(Subscript[(OverBar[X]), 25,56]),(Subscript[X, 62,31]),(Subscript[X, 73,32]),(Subscript[X, 84,33]),(Subscript[(OverBar[X]), 50,35]),(Subscript[X, 36,81]),(Subscript[X, 37,70]),(Subscript[X, 38,59]),(Subscript[(OverBar[X]), 39,54]),(Subscript[X, 44,55]),(Subscript[X, 58,45]),(Subscript[X, 69,46]),(Subscript[X, 80,47]),(Subscript[X, 48,91]),(Subscript[X, 90,49]),(Subscript[X, 51,82]),(Subscript[X, 52,71]),(Subscript[X, 53,60]),(Subscript[(OverBar[X]), 63,74]),(Subscript[(OverBar[X]), 64,85]),(Subscript[(OverBar[X]), 76,65]),(Subscript[(OverBar[X]), 87,66]),(Subscript[(OverBar[X]), 67,94]),(Subscript[(OverBar[X]), 75,86]),(Subscript[(OverBar[X]), 88,77]),(Subscript[(OverBar[X]), 78,93])]][[2]]]

Run

DunfieldKnots=ReadList["../../../People/Dunfield/nmd_random_knots"]/.k_Integer:>k+1;
DK[n_]:=DunfieldKnots[[n-2]];

DKString[n_]:=StringDrop[ToString[1000+n],1]

DKString[76]

Do[
If[FileExistsQ[from="D"<>ToString[n]<>".m"],RenameFile[from,"D"<>DKString[n]<>".m"]];
If[FileExistsQ[from="PP"<>ToString[n]<>".png"],RenameFile[from,"PP"<>DKString[n]<>".png"]],
{n,3,99}]

Clear[at,pp];
Monitor[
Do[
If[(n=k)>1000, Abort[]];
If[Not@FileExistsQ["D"<>DKString[n]<>".m"],
Put[
({at,th}=AbsoluteTiming[θ[DK[n]]])/.{(Subscript[T, 1])->T1,(Subscript[T, 2])->T2}, "D"<>DKString[n]<>".m"];
Export["PP"<>DKString[n]<>".png",pp=PolyPlot[th[[2]]]];
mon={n,at,pp}
],
{k,3,1000,1}
],
mon~Join~{n}
]