python3 -c 'import math,itertools s=math.sqrt(3);b=math.sqrt(2) def f(j,m):return math.sqrt(1/3)*(math.sin((j+1)*m*math.pi/6)-math.sin(j*m*math.pi/6)) def C(r,p,q,t):return sum(f(j,r)*f(j,p)*f(j,q)*f(j,t) for j in range(6)) def D(r,p,q,t,u,v):return sum(f(j,r)*f(j,p)*f(j,q)*f(j,t)*f(j,u)*f(j,v) for j in range(6)) w=[0,math.sqrt(2-s),1,math.sqrt(2),math.sqrt(3),math.sqrt(2+s)];a=[0,0,2,math.sqrt(3),2,0];M=[2,3,4];lab={2:(1,0,0),3:(0,1,0),4:(0,0,1)} def add(d,k,v):d[k]=d.get(k,0)+v def ng(k):return(-k[0],-k[1],-k[2]) def fold(f): g={} for k,v in f.items(): kk=k if k[0]<0 or (k[0]==0 and k[1]<0) or (k[0]==0 and k[1]==0 and k[2]<0):kk=ng(k) add(g,kk,v) return g def ev(k):return k[0]+k[1]*b+k[2]*s def conv(f,g): h={} for k,v in f.items(): for l,u in g.items():add(h,(k[0]+l[0],k[1]+l[1],k[2]+l[2]),v*u) return h q3=[] z=(0,0,0) for p in range(6): fd={} for tr in itertools.product(M,repeat=3): cc=C(p,*tr)*math.prod(a[i] for i in tr)/6 for sg in itertools.product([1,-1],repeat=3): k=tuple(sg[d]*lab[tr[d]][d] for d in range(3)) add(fd,k,cc/8) fc=fold(fd);q={} for k,F in fc.items(): if k==z:Q=F/w[p]**2 else: vv=ev(k);Q=0 if abs(vv-w[p])<1e-10 else F/(w[p]**2-vv**2) add(q,k,Q) q3.append(q) q1f={} for m in M: e=lab[m];add(q1f,e,a[m]/2);add(q1f,ng(e),a[m]/2) for r in [1,3,5]: Fd={} for tr in itertools.product(M,repeat=5): cc=-D(r,*tr)*math.prod(a[i] for i in tr)/120 for sg in itertools.product([1,-1],repeat=5): k=tuple(sg[d]*lab[tr[d]][d] for d in range(3)) add(Fd,k,cc/32) Fc={} for p in range(1,6): qf={} for k,Q in q3[p].items(): if k==z:add(qf,k,Q) else:add(qf,k,Q/2);add(qf,ng(k),Q/2) for q in M: for t in M: e=lab[q];g={};add(g,e,a[q]/2);add(g,ng(e),a[q]/2) e=lab[t];h={};add(h,e,a[t]/2);add(h,ng(e),a[t]/2) for k,v in conv(conv(qf,g),h).items():add(Fc,k,0.5*C(r,p,q,t)*v) K=(2,1,2);cF=fold(Fd).get(K,0)+fold(Fc).get(K,0) print(r,cF/(w[r]**2-ev(K)**2))'