getData[dir_]:=Dataset[With[{data=Import[#],metadata=ToExpression/@Rest[StringSplit[FileBaseName[#],"_"]]},<|"n"->metadata[[1]],"β0"->metadata[[2]],"β1"->metadata[[3]],"N"->metadata[[4]],"βs"->data[[1]],"f"->data[[2]],"ps"->data[[3]],"Es"->data[[4]],"Cs"->((data[[1]])^2)data[[5]],"ρs"->(#/Total[#]&)/@data[[6;;]]|>]&/@FileNames[FileNameJoin[{dir,"hmm_*.dat"}]]]

c[βi_,βj_][A_]:=2(((((βi)^2)+((βj)^2)))/(((βi-βj))^2))((InverseErfc[A])^2)

Ts[dat_]:=dat["βs"]

Cstmp[dat_]:=With[{ts=Ts[dat]},{{#,#+ts[[2]]-ts[[1]]}&/@ts,dat["ps"]}]

Cs[dat_]:=With[{ts=Ts[dat]},MapThread[{Mean[{#1[[1]],#1[[2]]}],c[#1[[1]],#1[[2]]][#2]}&,{MapThread[#1+{0,#2}&,{Most[ts],Differences[ts]}],dat["ps"]}]]

logZ0[n_]:=(n-1)(n/4+1)Log[2]+Sum[(k/2)Log[π]-Log[Gamma[k/2]],{k,2,n}]

logZ[n_][β_]:=lognum[n]+β (n^2)+n(n-1)/4Log[((2π)/(β n))]

ΔSs[dat_]:=With[{ts=Ts[dat],cs=Cs[dat]},{Mean[#1],((#2(#1[[2]]-#1[[1]]))/(Mean[#1]))}&@@@Thread[{Rest@Rest[FoldList[{#1[[2]],#2}&,{0,0},ts]],Cs[dat][[All,2]]}]]

ClearAll[Ss]

Cf[dat_][x_]:=Interpolation[Normal@Prepend[Thread[{Normal@dat["βs"],Normal@dat["Cs"]/Normal@dat["βs"]/((dat["n"])^2)}],{0,0}]][x]

Ss[dat_]:=With[{ss=ΔSs[dat]},Thread[{ss[[All,1]],Accumulate[ss[[All,2]]]}]]

Ss[dat_][x_]:=Integrate[Cf[dat][x],x]

ss8=FullSimplify[(logZ[8][β]-logZ0[8])/(8^2)-β,Assumptions->{β>0}]

d=getData["~/doc/research/hadamard/code/monte_carlo"];

c8[x_]=Cf[d[SelectFirst[#n==8&]]][x]

c12[x_]=Cf[d[SelectFirst[#n==12&]]][x]

Plot[{c8[x],c12[x]},{x,0,25},PlotRange->All]

Show[LogLogPlot[{c8[x],(1-3/π)x},{x,0.0001,30},PlotRange->All],ListLogLogPlot[d[SelectFirst[#n==8&],With[{L=((#n)^2)},{#1,#2/L/#1}&@@@Thread[{#βs,#Cs}]]&],PlotRange->All]]

s8[x_]=Ss[d[SelectFirst[#n==8&]]][x]

s12[x_]=Ss[d[SelectFirst[#n==12&]]][x]

fit8=NonlinearModelFit[Table[{x,s8[x]},{x,24,25,0.05}],logZ0[8]/(8^2)-(1-1/8) Log[2π E/(β 8)]/4-logN/(8^2),logN,β]

fit12=NonlinearModelFit[Table[{x,s12[x]},{x,24,25,0.01}],logZ0[12]/(12^2)-(1-1/12) Log[2π E/(β 12)]/4-logN/(12^2),logN,β]

Plot[{s8[x],fit8[x],s12[x],fit12[x]},{x,0,25}]

ns=Import["https://oeis.org/A206711/b206711.txt","Table"][[2;;,2]]/2;

(Exp[logN]-ns[[2]])/ns[[2]]/.fit8["BestFitParameters"]

(Exp[logN]-ns[[3]])/ns[[3]]/.fit12["BestFitParameters"]

ListLogPlot[d[SelectFirst[#n==8&],10000/2#ρs[[-4]]&],Joined->True]

tData={{4,Quantity[13,"Minutes"]+Quantity[32.95,"Seconds"]},{8,Quantity[42,"Minutes"]+Quantity[21.57,"Seconds"]},{16,Quantity[2,"Hours"]+Quantity[55,"Minutes"]+Quantity[5.77,"Seconds"]},{32,Quantity[14,"Hours"]+Quantity[31,"Minutes"]+Quantity[15.87,"Seconds"]}};

tFit=LinearModelFit[Log2[{#1,#2/Quantity["Days"]}&@@@tData],x,x]

Show[ListPlot[Log2[{#1,#2/Quantity["Days"]}&@@@tData],Joined->True],Plot[tFit[x],{x,0,5},PlotStyle->ColorData[97][2]]]

2^tFit[7]

UnitConvert[(Quantity[2,"Hours"]+Quantity[55,"Minutes"]+Quantity[5.77,"Seconds"])16 2,"Hours"]