# Erik Panzer # 09 November 2018 # This expression for INT was created directly with Maple's convert(, FromMma) # and "gold_standard_int_data_complete.data" from September 2017 # Exception: projectivized int[2],int[3],int[4] # # The data is slightly rearranged: # INT[k] = [Integrand, Fs, Even, Odd, op] # * 'Integrand' is a list of integrands # * 'Fs' is the definition of the polynomials in the denominator # * 'Even' are the even numerators # * 'Odd' are the odd numerators # * 'op' is the operator from {1,1+p,1+r} in front (see section 4) INT[1] := [ [n(1)/f[1]/f[2]/f[3]/f[4], (a[2]*n(3,[0, 2])+a[3]*n(3,[0, 3]))/f[1]/f[2]/f[3]^2/f[4], (a[2]*n(4,[0, 2])+a[3]*n(4,[0, 3]))/f[1]/f[2]/f[3]/f[4]^2], [f[1] = u1*a[2]*a[4]+u3*a[1]*a[3]+a[1]*a[4], f[2] = u1*a[2]*a[4]+u1*a[2]*b[2]+u3*a[1]*a[3]+u3*a[3]*b[1]+a[1]*a[4]+a[1]*b[2]+a[4]*b[1]+b[1]*b[2], f[3] = a[1]+a[2]+a[3]+b[1], f[4] = u2*a[2]+a[3]+a[4]+b[2]], [n(1) = -u2, n(3,[0, 2]) = (1-u1)*u2, n(3,[0, 3]) = 1/2-1/2*u1+1/2*u2-1/2*u3, n(4,[0, 2]) = 1/2*u2*(1-u1+u2-u3), n(4,[0, 3]) = u2*(1-u3)], [n(1) = 0, n(3,[0, 2]) = 0, n(3,[0, 3]) = 1/2*u1*v1, n(4,[0, 2]) = -1/2*u1*u2*v1, n(4,[0, 3]) = 0], 1 ]: INT[2] := [ [n(1)/f[1]/f[2]/f[3]/f[4]], [f[1] = u3*a[1]*a[3]+a[1]*a[2]+a[2]*a[3], f[2] = u3*a[1]*a[3]+u3*b[1]*a[3]+a[1]*a[2]+a[2]*b[1]+a[2]*a[3]+b[2]*a[3], f[3] = a[3]+a[1]+b[1], f[4] = a[1]+b[1]+b[2]], [n(1) = a[3]*(-1/2+1/2*u3)], [n(1) = 0], 1+p ]: INT[3] := [ [n(1)/f[1]/f[2]/f[3]/f[4]], [f[1] = u1*a[1]*a[3]+a[1]*a[2]+a[2]*a[3], f[2] = u1*a[1]*a[3]+u1*b[1]*a[3]+a[1]*a[2]+a[2]*b[1]+a[2]*a[3]+b[2]*a[3], f[3] = a[3]+a[1]+b[1], f[4] = a[1]+b[1]+b[2]], [n(1) = a[3]*(1/2-1/2*u1)], [n(1) = 0], 1+p ]: INT[4] := [ [n(1)/f[1]/f[2]/f[3]/f[4]], [f[1] = u3*a[1]*a[2]+a[1]*a[3]+a[2]*a[3], f[2] = u3*a[1]*a[2]+u3*a[2]*b[1]+a[2]*b[2]+a[1]*a[3]+a[2]*a[3]+b[1]*a[3], f[3] = a[1]+b[1]+b[2], f[4] = u3*a[1]+u3*b[1]+b[2]+a[3]], [n(1) = -1/2*u3*a[3]], [n(1) = 0], 1+p ]: INT[5] := [ [n(1)/f[1]/f[2]/f[3]/f[4], (a[1]*n(3,1)+a[3]*n(3,2)+a[4]*n(3,3)+b[2]*n(3,4))/f[1]/f[2]/f[3]^2/f[4], (a[1]*n(4,1)+a[3]*n(4,2)+a[4]*n(4,3)+b[2]*n(4,4))/f[1]/f[2]/f[3]/f[4]^2], [f[1] = u2*a[1]*a[3]+a[1]*a[2]+a[2]*a[4], f[2] = u2*a[1]*a[3]+a[1]*a[2]+a[1]*b[1]+a[2]*a[4]+a[2]*b[2]+a[4]*b[1]+b[1]*b[2], f[3] = a[2]+a[3]+a[4]+b[1]+b[2], f[4] = u1*a[1]+u3*a[3]+a[4]+b[2]], [n(1) = -3/4+3/4*u1-1/4*u2+1/4*u3, n(3,1) = -1/2*u1*u2+1/2*u2+1/2*u3-1/2, n(3,2) = 1/2*u2*u3-1/2*u1-1/2*u2+1/2, n(3,3) = -1/2*u1+1/2*u3, n(3,4) = -1/2*u1+1/2*u3, n(4,1) = -1/4*u1^2-1/4*u1*u2-3/4*u1*u3+3/4*u1+1/2*u2+1/2*u3-1/2, n(4,2) = 1/4*(3-3*u1+u2-u3)*u3, n(4,3) = -u1*u3+1/4*u1+1/4*u2+3/4*u3-1/4, n(4,4) = -u1*u3+1/4*u1+1/4*u2+3/4*u3-1/4], [n(1) = 1/4*u1*v1, n(3,1) = -1/2*u1*v1, n(3,2) = -1/2*u1*v1, n(3,3) = -1/2*u1*v1, n(3,4) = -1/2*u1*v1, n(4,1) = 1/4*(-2+u1)*u1*v1, n(4,2) = -1/4*u1*u3*v1, n(4,3) = -1/4*u1*v1, n(4,4) = -1/4*u1*v1], 1+p ]: INT[6] := [ [n(1)/f[1]/f[2]/f[3]/f[4], (a[1]*n(3,1)+a[3]*n(3,2)+a[4]*n(3,3)+b[2]*n(3,4))/f[1]/f[2]/f[3]^2/f[4], (a[1]*n(4,1)+a[3]*n(4,2)+a[4]*n(4,3)+b[2]*n(4,4))/f[1]/f[2]/f[3]/f[4]^2], [f[1] = a[1]*a[3]+a[2]*a[3]+a[2]*a[4], f[2] = a[1]*a[3]+a[2]*a[3]+a[2]*a[4]+a[2]*b[2]+a[3]*b[1]+a[4]*b[1]+b[1]*b[2], f[3] = u3*a[3]+a[1]+a[4]+b[2], f[4] = u1*a[4]+u1*b[2]+u2*a[2]+u2*b[1]+a[1]], [n(1) = 1/4-3/4*u1-1/4*u2-1/4*u3, n(3,1) = 1/4+1/4*u1-1/4*u2-1/4*u3, n(3,2) = 1/4*u3*(-1-u1+u2+u3), n(3,3) = -u1*u3+3/4*u1+1/4*u2+1/4*u3-1/4, n(3,4) = -u1*u3+3/4*u1+1/4*u2+1/4*u3-1/4, n(4,1) = -1/2*u1*(-1+u2), n(4,2) = 1/2*u1*(-1+u2)*u3, n(4,3) = -1/2*u1*(-u1+u3), n(4,4) = -1/2*u1*(-u1+u3)], [n(1) = 1/4*u3*v3, n(3,1) = 1/4*u3*v3, n(3,2) = -1/4*u3^2*v3, n(3,3) = -1/4*u3*v3, n(3,4) = -1/4*u3*v3, n(4,1) = 0, n(4,2) = 0, n(4,3) = -1/2*u1*u3*v3, n(4,4) = -1/2*u1*u3*v3], 1+p ]: INT[7] := [ [n(1)/f[1]/f[2]/f[3]/f[4], (a[1]*b[2]*n(2,1)+a[4]*b[2]*n(2,2)+b[2]^2*n(2,3))/f[1]/f[2]^2/f[3]/f[4], (a[1]*n(4,1)+a[4]*n(4,2)+b[2]*n(4,3))/f[1]/f[2]/f[3]/f[4]^2], [f[1] = u2*a[1]*a[4]+a[1]*a[3]+a[2]*a[3]+a[2]*a[4], f[2] = u1*a[3]*b[2]+u1*b[1]*b[2]+u2*a[1]*a[4]+u3*a[2]*b[2]+a[1]*a[3]+a[1]*b[1]+a[2]*a[3]+a[2]*a[4]+a[2]*b[1], f[3] = u3*b[2]+a[3]+a[4]+b[1], f[4] = a[1]+a[4]+b[2]], [n(1) = -1/4-3/4*u1+1/4*u2+1/4*u3, n(2,1) = -1/2*u1*u2*u3, n(2,2) = 1/2*u1*(u2*u3-u1-u2-u3+1), n(2,3) = -1/2*u1*u3*(-1+u1+u3), n(4,1) = -1/4+1/4*u1+1/4*u2+1/4*u3, n(4,2) = 1/4+3/4*u1-1/4*u2-1/4*u3, n(4,3) = 1/4-1/4*u1-1/4*u2+1/4*(-1+4*u1)*u3], [n(1) = -1/4*u3*v3, n(2,1) = 0, n(2,2) = -1/2*u1*u3*v3, n(2,3) = -1/2*u1*u3^2*v3, n(4,1) = -1/4*u3*v3, n(4,2) = 1/4*u3*v3, n(4,3) = 1/4*u2*v2], 1+p ]: INT[8] := [ [n(1)/f[1]/f[2]/f[3]/f[4], (a[3]*n(3,1)+a[4]*n(3,2)+b[2]*n(3,3))/f[1]/f[2]/f[3]^2/f[4]], [f[1] = eps*a[1]*a[2]+a[1]*a[3]+a[1]*a[4]+a[2]*a[4], f[2] = eps*a[1]*a[2]+eps*a[1]*b[1]+a[1]*a[3]+a[1]*a[4]+a[1]*b[2]+a[2]*a[4]+a[2]*b[2]+a[4]*b[1]+b[1]*b[2], f[3] = u3*a[4]+u3*b[2]+a[2]+a[3]+b[1], f[4] = eps*a[2]+eps*b[1]+a[3]+a[4]+b[2]], [n(1) = -1, n(3,1) = 1/2-1/2*u3, n(3,2) = -1/2+1/2*u3, n(3,3) = -1/2+1/2*u3], [n(1) = 0, n(3,1) = 0, n(3,2) = 0, n(3,3) = 0], 1+p ]: INT[9] := [ [n(1)/f[1]/f[2]/f[3]/f[4], (a[1]*n(3,1)+a[4]*n(3,2)+b[2]*n(3,3))/f[1]/f[2]/f[3]^2/f[4]], [f[1] = eps*u3*a[2]*a[3]+u1*a[1]*a[2]+a[1]*a[3]+a[2]*a[4]+a[3]*a[4], f[2] = eps*u3*a[2]*a[3]+eps*u3*a[2]*b[1]+u1*a[1]*a[2]+a[1]*a[3]+a[1]*b[1]+a[2]*a[4]+a[2]*b[2]+a[3]*a[4]+a[3]*b[2]+a[4]*b[1]+b[1]*b[2], f[3] = a[3]+a[4]+b[1]+b[2], f[4] = eps*u3*a[3]+eps*u3*b[1]+u1*a[1]+a[4]+b[2]], [n(1) = -1+u1, n(3,1) = 1/2*(-2+u1)*u1, n(3,2) = -1/2*u1, n(3,3) = -1/2*u1], [n(1) = 0, n(3,1) = 0, n(3,2) = 0, n(3,3) = 0], 1+p ]: INT[10] := [ [n(1)/f[1]/f[2]/f[3]/f[4], (a[3]*n(3,[0, 3])+a[4]*n(3,[0, 4]))/f[1]/f[2]/f[3]^2/f[4], (a[3]*n(4,[0, 3])+a[4]*n(4,[0, 4]))/f[1]/f[2]/f[3]/f[4]^2], [f[1] = eps*a[1]*a[2]+u1*a[2]*a[4]+a[1]*a[3]+a[1]*a[4], f[2] = eps*a[1]*a[2]+eps*a[1]*b[2]+eps*a[2]*b[1]+eps*b[1]*b[2]+u1*a[2]*a[4]+u1*a[4]*b[2]+a[1]*a[3]+a[1]*a[4]+a[3]*b[1]+a[4]*b[1], f[3] = u2*a[3]+a[1]+a[2]+b[1]+b[2], f[4] = u3*a[4]+a[2]+a[3]+b[2]], [n(1) = -u1, n(3,[0, 3]) = u1*u2-1/2*u1-1/2*u2-1/2*u3+1/2, n(3,[0, 4]) = 1/2*(-1+u1)*(-1+u1+u2+u3), n(4,[0, 3]) = 1/2+1/2*u1-1/2*u2-1/2*u3, n(4,[0, 4]) = u1*u3-1/2*u1-1/2*u2-1/2*u3+1/2], [n(1) = 0, n(3,[0, 3]) = -1/2*u3*v3, n(3,[0, 4]) = -1/2*(1-u1)*u3*v3, n(4,[0, 3]) = -1/2*u3*v3, n(4,[0, 4]) = -1/2*u3*v3], 1+p ]: INT[11] := [ [n(1)/f[1]/f[2]/f[3]/f[4], a[2]*n(3,[0, 2])/f[1]/f[2]/f[3]^2/f[4]], [f[1] = eps*u2*a[3]*a[4]+a[1]*a[3]+a[1]*a[4]+a[2]*a[4], f[2] = eps*u2*a[3]*a[4]+eps*u2*a[3]*b[2]+eps*u2*a[4]*b[1]+eps*u2*b[1]*b[2]+a[1]*a[3]+a[1]*a[4]+a[1]*b[1]+a[1]*b[2]+a[2]*a[4]+a[2]*b[2], f[3] = u3*a[4]+u3*b[2]+a[2]+a[3]+b[1], f[4] = a[3]+a[4]+b[1]+b[2]], [n(1) = -1+u3, n(3,[0, 2]) = 1-u3], [n(1) = 0, n(3,[0, 2]) = 0], 1+p ]: INT[12] := [ [n(1)/f[1]/f[2]/f[3]/f[4], a[4]^2*n(2,1)/f[1]^2/f[2]/f[3]/f[4], a[4]^2*n(3,1)/f[1]/f[2]^2/f[3]/f[4], a[4]*n(4,1)/f[1]/f[2]/f[3]^2/f[4]], [f[1] = eps*u3*a[2]*a[3]+eps*a[1]*a[2]+u1*a[3]*a[4]+a[1]*a[3]+a[1]*a[4]+a[2]*a[4], f[2] = eps*u3*a[2]*a[3]+eps*u3*a[2]*b[2]+eps*u3*a[3]*b[1]+eps*u3*b[1]*b[2]+eps*a[1]*a[2]+eps*a[1]*b[1]+u1*a[3]*a[4]+u1*a[4]*b[2]+a[1]*a[3]+a[1]*a[4]+a[1]*b[2]+a[2]*a[4]+a[4]*b[1], f[3] = a[2]+a[3]+b[1]+b[2], f[4] = eps*a[2]+eps*b[1]+a[3]+a[4]+b[2]], [n(1) = -1, n(2,1) = 1/2-1/2*u1, n(3,1) = 1/2-1/2*u1, n(4,1) = -1/2+1/2*u1], [n(1) = 0, n(2,1) = 0, n(3,1) = 0, n(4,1) = 0], 1+p ]: INT[13] := [ [n(1)/f[1]/f[2]^2/f[3]], [f[1] = eps*u2*a[3]*a[4]+eps*a[1]*a[2]+eps*a[2]*a[3]+a[1]*a[3]+a[1]*a[4]+a[2]*a[4], f[2] = eps*u2*a[3]*a[4]+eps*u2*a[4]*b[3]+eps*a[1]*a[2]+eps*a[1]*b[2]+eps*a[2]*a[3]+eps*a[2]*b[1]+eps*a[2]*b[3]+eps*a[3]*b[2]+eps*b[1]*b[2]+eps*b[2]*b[3]+a[1]*a[3]+a[1]*a[4]+a[1]*b[3]+a[2]*a[4]+a[3]*b[1]+a[4]*b[1]+a[4]*b[2]+b[1]*b[3], f[3] = eps*u2*a[3]+eps*u2*b[3]+a[1]+a[2]+b[1]+b[2]], [n(1) = -1], [n(1) = 0], 1 ]: INT[14] := [ [n(1)/f[1]/f[2]/f[3]/f[4], (a[3]*b[2]*n(2,[2, 3])+a[4]*b[2]*n(2,[2, 4]))/f[1]/f[2]^2/f[3]/f[4], (a[3]*n(4,[0, 3])+a[4]*n(4,[0, 4]))/f[1]/f[2]/f[3]/f[4]^2], [f[1] = eps*a[1]*a[2]+u2*a[1]*a[4]+a[1]*a[3]+a[2]*a[3]+a[2]*a[4], f[2] = eps*a[1]*a[2]+eps*a[1]*b[1]+u2*a[1]*a[4]+u3*a[4]*b[2]+a[1]*a[3]+a[1]*b[2]+a[2]*a[3]+a[2]*a[4]+a[3]*b[1]+a[4]*b[1], f[3] = eps*a[2]+eps*b[1]+u2*a[4]+a[3]+b[2], f[4] = u1*a[3]+a[2]+b[1]+b[2]], [n(1) = -1+u2, n(2,[2, 3]) = -1/2+1/2*u1+1/2*u2-1/2*u3, n(2,[2, 4]) = -u2*u3+1/2*u1+1/2*u2+1/2*u3-1/2, n(4,[0, 3]) = 1/2*(-2*u1*u2*u3+u3*(-1+u1+u2+u3))/u3, n(4,[0, 4]) = 1/2*u2*(-1-u1+u2+u3)], [n(1) = 0, n(2,[2, 3]) = -1/2*u3*v3, n(2,[2, 4]) = -1/2*u3*v3, n(4,[0, 3]) = 1/2*u2*v2, n(4,[0, 4]) = 1/2*u2*u3*v3], 1 ]: INT[15] := [ [n(1)/f[1]/f[2]/f[3]/f[4], a[4]*n(4,[0, 4])/f[1]/f[2]/f[3]/f[4]^2], [f[1] = eps*a[1]*a[2]+eps*a[2]*a[3]+a[1]*a[3]+a[1]*a[4]+a[2]*a[4], f[2] = eps*a[1]*a[2]+eps*a[1]*b[1]+eps*a[2]*a[3]+eps*a[2]*b[2]+eps*a[3]*b[1]+eps*b[1]*b[2]+a[1]*a[3]+a[1]*a[4]+a[1]*b[2]+a[2]*a[4]+a[4]*b[1], f[3] = eps*a[2]+eps*b[1]+a[3]+a[4]+b[2], f[4] = u3*a[4]+a[2]+a[3]+b[1]+b[2]], [n(1) = -1, n(4,[0, 4]) = -1+u3], [n(1) = 0, n(4,[0, 4]) = 0], 1+r ]: INT[16] := [ [n(1)/f[1]/f[2]/f[3]/f[4], (a[2]*b[1]*n(2,[1, 2])+a[4]*b[1]*n(2,[1, 4]))/f[1]/f[2]^2/f[3]/f[4], (a[2]*n(4,[0, 2])+a[4]*n(4,[0, 4]))/f[1]/f[2]/f[3]/f[4]^2], [f[1] = u2*a[1]*a[4]+a[1]*a[3]+a[2]*a[3]+a[2]*a[4], f[2] = u2*a[1]*a[4]+u3*a[4]*b[1]+a[1]*a[3]+a[1]*b[1]+a[1]*b[2]+a[2]*a[3]+a[2]*a[4]+a[2]*b[2], f[3] = u2*a[4]+a[3]+b[1]+b[2], f[4] = u1*a[3]+u1*b[2]+a[2]+b[1]], [n(1) = -u3, n(2,[1, 2]) = -u3, n(2,[1, 4]) = 1/2*u3*(-1+u1+u2+u3), n(4,[0, 2]) = -1/2+1/2*u1+1/2*u2+1/2*u3, n(4,[0, 4]) = -u1*u2*u3], [n(1) = 0, n(2,[1, 2]) = 0, n(2,[1, 4]) = -1/2*u2*u3*v2, n(4,[0, 2]) = 1/2*u1*v1, n(4,[0, 4]) = 0], 1 ]: Integrand := proc(ind, parity, form:="sum") global INT: local X: if not assigned(INT[ind]) then error "integral '%1' not defined": end if: if not (parity in {"even", "odd"}) then error "parity '%1' must be 'even' or 'odd'", parity: end if: X := eval(INT[ind][1], INT[ind][2]): X := eval(X, INT[ind][`if`(parity="even", 3, 4)]): if form="sum" then return `+`(op(X)): elif form="list" then return X: elif type(form, 'posint') then return X[form]: else error "unknown format: %1", form: end if: end proc: # symmetry operators: Rotation := [ u1=u2,u2=u3,u3=u1, v1=-v2,v2=-v3,v3=-v1, y1=1/y2,y2=1/y3,y3=1/y1, x=(t+y)*x/t/(x-1),y=y*(t+x)/t/(y-1),t=x*y/t ]: Parity := [ u1=u3,u3=u1, v1=-v3,v2=-v2,v3=-v1, y1=1/y3,y2=1/y2,y3=1/y1, x=y,y=x,t=x*y/t ]: # variable transformations: u2y := [ u1 = y1*(1-y2)*(1-y3)/((1-y1*y2)*(1-y1*y3)), u2 = y2*(1-y3)*(1-y1)/((1-y2*y3)*(1-y2*y1)), u3 = y3*(1-y1)*(1-y2)/((1-y3*y1)*(1-y3*y2)) ]: v2y := [ v1 = (1-y1)*(1-y1*y2*y3)/(y1*(1-y2*y3)), v2 = (1-y2)*(1-y1*y2*y3)/(y2*(1-y3*y1)), v3 = (1-y3)*(1-y1*y2*y3)/(y3*(1-y1*y2)) ]: txy2y := [ t = (1-y3)*(1-y1*y2*y3)/(y3*(1-y1)*(1-y2)), x = (1-y1*y2*y3)/(y1*y3*(1-y2)), y = (1-y1*y2*y3)/(1-y2) ]: all2y := [op(u2y),op(v2y),op(txy2y)]: y2txy := factor(solve(txy2y, [y1,y2,y3])[1]): v2txy := factor(eval(v2y, y2txy)): u2txy := factor(eval(u2y, y2txy)): all2txy := [op(u2txy),op(v2txy),op(y2txy)]: # Relations between even parts: #[(Int[3]+Int[4]+Int[8])*(r-1), Int[2]+Int[3], (r^2+r+1)*(2*Int[3]+Int[8]+Int[11]-Int[12]+2*Int[13]-Int[15]), (Int[5]-Int[6]-Int[8]-2*Int[10]-Int[11]-Int[12]-2*Int[13]+Int[14])*(r-1), (r^2+r+1)*(Int[3]-Int[12]-Int[15]+Int[5]-Int[6]-Int[10])]