Bulk-stitching the simplified 1co invariant (normalized by (ω^2), knot only version).

Input: Crossings, cuaps (collectively known as Pieces), labeled 1,..n and stitching instructions as a permutation P of {1,..n}. 
Output: The 1-co invariant of the knot, only the coefficient of epsilon of the constant term.

<<KnotTheory`;

adj[m_]:=Map[Reverse,Minors[Transpose[m],Length[m]-1],{0,1}]Table[(-1)^(i+j),{i,Length[m]},{j,Length[m]}](*We write Inverse=adj/Det.*)
(Subscript[Z, P_])[Pieces_]:=Block[{N,A,adA,ω,Q,W,H,G,ZG,ZH,corr,ZZ},
N=Length[P];
corr=Times@@(Pieces/.{(Subscript[Rp, a_,b_])->(t^(-1)),(Subscript[Rm, a_,b_])->t,(Subscript[u, a_])->(t^(-1)),(Subscript[n, a_])->t});
Q= (*The quadratic in the exponential, pulled factor t-1 out*)SparseArray[Pieces/.{(Subscript[Rp, i_,j_])->{{i,j}->-1,{j,j}->1},(Subscript[Rm, i_,j_])->{{i,j}->(t^(-1)),{j,j}->-(t^(-1))},(Subscript[x_, i_])->Nothing}//Flatten,{N,N}];
(*Print["Q=",Q//MatrixForm];*)
Pos[i_]:=FirstPosition[P,i][[1]];
W=Table[If[Pos[i]<Pos[j],1,0],{i,1,N},{j,1,N}];
(*Print["W=",W//MatrixForm]*);
A=IdentityMatrix[N]-(t-1)W.Q//Together;
(*Print["A=",A//MatrixForm];*)
ω=(corr^(1/2))Det[A];
adA=adj[A];
(*Print["adA=",adA//MatrixForm];*)
G=Q.adA//Together;(*Normalized by ω, note we left (ω^(-1 ))out.*)
(*Print["G=",G//MatrixForm];*)
H=adA.W//Together;(*Normalized by ω, note we left (ω^(-1 ))out.*)
(*Print["H=",H//MatrixForm];*)
ZG=((t^2)-1)Sum[
G[[j,a]]((1/2)G[[j,b]]+Sum[ G[[c,b]],{c,Take[P,{Pos[j]+1,N}]} ]),{j,P},{a,Take[P,Pos[j]-1]},{b,Take[P,Pos[j]-1]}]//Together//Expand;
ZH=Plus@@(Pieces/.{
(Subscript[Rp, i_,j_]):> (((((1-t))^2)/2) ((H[[j,i]])^2)-((((1+t))^2)/2)((H[[j,j]])^2)+ t (H[[j,i]]H[[i,j]]+H[[i,i]]H[[j,j]])+ 2t(1-t)H[[j,i]]H[[j,j]]),
(Subscript[Rm, i_,j_]):> (-((((1-(t^(-1))))^2)/2) ((H[[j,i]])^2)+((((1+(t^(-1))))^2)/2) ((H[[j,j]])^2)- (t^(-1)) (H[[j,i]]H[[i,j]]+H[[i,i]]H[[j,j]])+ 2(t^(-1))(1-t) H[[j,i]]H[[i,i]] ),
(Subscript[u, i_]):>(corr^(-1/2))ω H[[i,i]],(Subscript[n, i_]):> -(corr^(-1/2))ω H[[i,i]] (*Normalized by ω*)
})//Together//Expand;
(*Print[ZH];Print[ZG];*)
ZZ=corr(ZH+ZG)//Together;
{ω,ZZ}//PowerExpand//Expand
]
(*Rozansky's normalization (Subscript[ρ, 1])*)
(Subscript[ρ, P_])[Pieces_]:=Block[{ZZ,Z,ω},
ZZ=(Subscript[Z, P])[Pieces];
ω=ZZ[[1]];
Z=ZZ[[2]];
Normal[Series[((-t)/(((1-t))^2))(Z-t ω D[ω,t]),{t,Infinity,0}]]
]

RVK::usage="RVK[xs, rots] represents a Rotational Virtual Knot with a list of n Xp/Xm crossings xs and a length 2n list of rotation numbers rots. Crossing sites are indexed 1 through 2n, and rots[[k]] is the rotation between site k-1 and site k. RVK is also a casting operator converting to the RVK presentation from other knot presentations.";
RVK[pd_PD] := Module[{n,xs,x,rots,front,k},
n=Length[pd];
xs=List@@pd /. x_X :> If[PositiveQ[x], Xp[x[[4]],x[[1]]], Xm[x[[2]],x[[1]]]];
rots=Table[0, {2n}];
front={0};
For[k=0, k<2n, ++k,
If[k==0∨FreeQ[front, -k],
front = Flatten[front /. k->Catch[xs /. {
Xp[k+1,l_]|Xm[l_,k+1] :> Throw[{l,k+1,1-l}],
Xp[l_,k+1]|Xm[k+1,l_] :> (++rots[[l]]; Throw[{1-l,k+1,l}])
}]],
If[MatchQ[front,{___,k,___,-k,___}], --rots[[k+1]]]
]
];
RVK[xs,rots]
];
RVK[K_] := RVK[PD[K]];

(*A non-fast procedure to calculate the 1-co invariant from the KnotTheory table knots via RVK format*)
ρRVK[K_]:=Module[{RV,L,Piec,news,Pe},
RV=RVK[K];
L=Length[RV[[2]]];
Piec=RV[[1]]/.{Xm[a_,b_]->(Subscript[Rm, a,b]),Xp[a_,b_]->(Subscript[Rp, a,b])};
Pe= Range[L];
news=1;
For[i=1,i<=L,i++,
If[RV[[2]][[i]]==1,Piec=Append[Piec,(Subscript[u, news+L])];Pe=Pe/.{i->{news+L,i}}//Flatten;news++];
If[RV[[2]][[i]]==-1,Piec=Append[Piec,(Subscript[n, news+L])];Pe=Pe/.{i->{news+L,i}}//Flatten;news++];
];Clear[i];
(Subscript[ρ, Pe])[Piec]
]

{#,DrawPD[#],ρRVK[#]}&/@AllKnots[{3,6}]//MatrixForm

{#,ρRVK[#]}&/@AllKnots[{3,10}]//MatrixForm//Timing