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)) 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 q3=[{} for _ in range(6)] for p in range(1,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==(0,0,0):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[p]=q labels=[(2,1,0),(2,0,1),(1,1,1),(1,0,2),(0,1,2)] for k in labels: print(k,[q3[p].get(k,0) for p in range(1,6)])'