//This is the ideal Fourier invariants. ring rQ = 0,(q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,q18,q19,q20,q21,q22,q23,q24,q25,q26,q27,q28,q29,q30,q31,q32,q33),dp; ideal Invariants = q3*q32-q2*q33, q17*q31-q15*q33, q2*q31-q1*q32, q20*q30-q23*q32, q9*q30-q5*q32, q8*q30-q7*q31, q21*q29-q23*q32, q9*q29-q6*q32, q8*q29-q4*q33, q5*q29-q6*q30, q23*q28-q17*q30, q21*q28-q19*q30, q20*q28-q16*q33, q20*q28-q17*q32, q20*q28-q19*q29, q18*q28-q22*q32, q15*q28-q22*q30, q12*q28-q14*q30, q10*q28-q5*q33, q9*q28-q7*q32, q6*q28-q7*q29, q5*q28-q7*q30, q23*q27-q15*q29, q21*q27-q15*q32, q21*q27-q16*q31, q21*q27-q18*q30, q20*q27-q18*q29, q19*q27-q22*q32, q17*q27-q22*q29, q13*q27-q11*q29, q10*q27-q6*q31, q9*q27-q4*q32, q7*q27-q4*q28, q6*q27-q4*q29, q5*q27-q4*q30, q19*q26-q12*q33, q18*q26-q13*q31, q7*q26-q3*q30, q4*q26-q1*q29, q23*q25-q13*q30, q23*q25-q12*q29, q23*q25-q16*q26, q22*q25-q11*q28, q22*q25-q14*q27, q21*q25-q12*q32, q20*q25-q13*q32, q19*q25-q14*q32, q18*q25-q11*q32, q17*q25-q14*q29, q17*q25-q13*q28, q15*q25-q11*q30, q15*q25-q12*q27, q10*q25-q9*q26, q9*q25-q2*q32, q7*q25-q2*q28, q6*q25-q2*q29, q5*q25-q2*q30, q4*q25-q2*q27, q23*q24-q22*q26, q21*q24-q14*q31, q20*q24-q11*q33, q16*q24-q22*q25, q10*q24-q1*q33, q10*q24-q3*q31, q10*q24-q8*q26, q9*q24-q8*q25, q6*q24-q3*q27, q5*q24-q1*q28, q10*q22-q8*q23, q17*q21-q19*q23, q15*q20-q18*q23, q12*q20-q13*q21, q15*q19-q21*q22, q13*q19-q14*q20, q12*q19-q14*q21, q5*q19-q7*q21, q4*q19-q9*q22, q17*q18-q20*q22, q14*q18-q11*q19, q13*q18-q11*q20, q12*q18-q11*q21, q7*q18-q9*q22, q6*q18-q4*q20, q15*q17-q22*q23, q12*q17-q14*q23, q11*q17-q13*q22, q9*q17-q7*q20, q9*q17-q6*q19, q5*q17-q7*q23, q4*q17-q6*q22, q10*q16-q9*q23, q10*q16-q6*q21, q10*q16-q5*q20, q8*q16-q9*q22, q14*q15-q12*q22, q13*q15-q11*q23, q9*q15-q5*q18, q9*q15-q4*q21, q7*q15-q5*q22, q6*q15-q4*q23, q3*q15-q1*q17, q10*q14-q3*q21, q9*q14-q2*q19, q9*q13-q2*q20, q8*q13-q3*q18, q7*q13-q6*q14, q7*q13-q3*q16, q7*q13-q2*q17, q9*q12-q2*q21, q8*q12-q1*q19, q7*q12-q5*q14, q6*q12-q5*q13, q6*q12-q2*q23, q10*q11-q1*q20, q9*q11-q2*q18, q7*q11-q4*q14, q7*q11-q2*q22, q6*q11-q4*q13, q5*q11-q4*q12, q5*q11-q2*q15, q5*q11-q1*q16, q24*q29*q32-q25*q27*q33, q26*q28*q32-q25*q30*q33, q8*q20*q32-q9*q18*q33, q10*q19*q32-q9*q21*q33, q28*q29*q31-q27*q30*q33, q25*q29*q31-q26*q27*q32, q25*q28*q31-q24*q30*q32, q19*q20*q31-q18*q21*q33, q9*q20*q31-q10*q18*q32, q9*q19*q31-q8*q21*q32, q1*q21*q30-q5*q12*q31, q10*q15*q30-q5*q23*q31, q3*q20*q29-q6*q13*q33, q10*q17*q29-q6*q23*q33, q26*q27*q28-q24*q29*q30, q3*q19*q28-q7*q14*q33, q8*q17*q28-q7*q22*q33, q1*q18*q27-q4*q11*q31, q8*q15*q27-q4*q22*q31, q15*q21*q26-q12*q23*q31, q5*q21*q26-q10*q12*q30, q17*q20*q26-q13*q23*q33, q6*q20*q26-q10*q13*q29, q6*q17*q26-q3*q23*q29, q5*q15*q26-q1*q23*q30, q1*q13*q25-q2*q11*q26, q3*q12*q25-q2*q14*q26, q17*q19*q24-q14*q22*q33, q7*q19*q24-q8*q14*q28, q15*q18*q24-q11*q22*q31, q4*q18*q24-q8*q11*q27, q7*q17*q24-q3*q22*q28, q4*q15*q24-q1*q22*q27, q12*q13*q24-q11*q14*q26, q2*q13*q24-q3*q11*q25, q2*q12*q24-q1*q14*q25, q10*q18*q19-q8*q20*q21, q8*q14*q17-q3*q19*q22, q10*q13*q17-q3*q20*q23, q10*q12*q15-q1*q21*q23, q8*q11*q15-q1*q18*q22, q3*q11*q12-q1*q13*q14, q1*q6*q9-q2*q4*q10, q3*q5*q9-q2*q7*q10, q5*q6*q8-q4*q7*q10, q2*q6*q8-q3*q4*q9, q2*q5*q8-q1*q7*q9, q3*q4*q5-q1*q6*q7, q24*q26*q32^2-q25^2*q31*q33, q8*q10*q32^2-q9^2*q31*q33, q24*q29^2*q31-q26*q27^2*q33, q26*q28^2*q31-q24*q30^2*q33, q8*q20^2*q31-q10*q18^2*q33, q10*q19^2*q31-q8*q21^2*q33, q1*q10*q30^2-q5^2*q26*q31, q3*q10*q29^2-q6^2*q26*q33, q3*q8*q28^2-q7^2*q24*q33, q1*q8*q27^2-q4^2*q24*q31, q1*q21^2*q26-q10*q12^2*q31, q3*q20^2*q26-q10*q13^2*q33, q10*q17^2*q26-q3*q23^2*q33, q10*q15^2*q26-q1*q23^2*q31, q1*q3*q25^2-q2^2*q24*q26, q3*q19^2*q24-q8*q14^2*q33, q1*q18^2*q24-q8*q11^2*q31, q8*q17^2*q24-q3*q22^2*q33, q8*q15^2*q24-q1*q22^2*q31, q1*q13^2*q24-q3*q11^2*q26, q3*q12^2*q24-q1*q14^2*q26, q1*q3*q9^2-q2^2*q8*q10, q1*q6^2*q8-q3*q4^2*q10, q3*q5^2*q8-q1*q7^2*q10; // This is the inverse of the Fourier transform. matrix ptoq[36][33] = 1/64,1/32,1/64,1/32,1/32,1/32,1/32,1/64,1/32,1/64,1/32,1/32,1/32,1/32,1/32,1/8,1/32,1/32,1/32,1/32,1/32,1/32,1/32,1/64,1/32,1/64,1/32,1/32,1/32,1/32,1/64,1/32,1/64, 1/32,0,-1/32,0,1/16,0,-1/16,-1/32,0,1/32,0,1/16,0,-1/16,1/16,0,-1/16,0,-1/16,0,1/16,-1/16,1/16,-1/32,0,1/32,0,-1/16,0,1/16,1/32,0,-1/32, 1/64,-1/32,1/64,-1/32,1/32,-1/32,1/32,1/64,-1/32,1/64,-1/32,1/32,-1/32,1/32,1/32,-1/8,1/32,-1/32,1/32,-1/32,1/32,1/32,1/32,1/64,-1/32,1/64,-1/32,1/32,-1/32,1/32,1/64,-1/32,1/64, 1/32,0,-1/32,1/16,0,-1/16,0,1/32,0,-1/32,1/16,0,-1/16,0,1/16,0,-1/16,1/16,0,-1/16,0,1/16,-1/16,1/32,0,-1/32,1/16,0,-1/16,0,1/32,0,-1/32, 1/32,1/16,1/32,0,0,0,0,-1/32,-1/16,-1/32,0,0,0,0,1/16,0,1/16,0,0,0,0,-1/16,-1/16,-1/32,-1/16,-1/32,0,0,0,0,1/32,1/16,1/32, 1/32,0,-1/32,-1/16,0,1/16,0,1/32,0,-1/32,-1/16,0,1/16,0,1/16,0,-1/16,-1/16,0,1/16,0,1/16,-1/16,1/32,0,-1/32,-1/16,0,1/16,0,1/32,0,-1/32, 1/32,-1/16,1/32,0,0,0,0,-1/32,1/16,-1/32,0,0,0,0,1/16,0,1/16,0,0,0,0,-1/16,-1/16,-1/32,1/16,-1/32,0,0,0,0,1/32,-1/16,1/32, 1/64,-1/32,1/64,1/32,-1/32,1/32,-1/32,1/64,-1/32,1/64,1/32,-1/32,1/32,-1/32,1/32,-1/8,1/32,1/32,-1/32,1/32,-1/32,1/32,1/32,1/64,-1/32,1/64,1/32,-1/32,1/32,-1/32,1/64,-1/32,1/64, 1/32,0,-1/32,0,-1/16,0,1/16,-1/32,0,1/32,0,-1/16,0,1/16,1/16,0,-1/16,0,1/16,0,-1/16,-1/16,1/16,-1/32,0,1/32,0,1/16,0,-1/16,1/32,0,-1/32, 1/64,1/32,1/64,-1/32,-1/32,-1/32,-1/32,1/64,1/32,1/64,-1/32,-1/32,-1/32,-1/32,1/32,1/8,1/32,-1/32,-1/32,-1/32,-1/32,1/32,1/32,1/64,1/32,1/64,-1/32,-1/32,-1/32,-1/32,1/64,1/32,1/64, 1/32,1/16,1/32,0,0,0,0,-1/32,-1/16,-1/32,1/16,1/16,1/16,1/16,0,0,0,-1/16,-1/16,-1/16,-1/16,0,0,1/32,1/16,1/32,0,0,0,0,-1/32,-1/16,-1/32, 1/32,0,-1/32,1/16,0,-1/16,0,1/32,0,-1/32,0,1/16,0,-1/16,0,0,0,0,1/16,0,-1/16,0,0,-1/32,0,1/32,-1/16,0,1/16,0,-1/32,0,1/32, 1/32,-1/16,1/32,0,0,0,0,-1/32,1/16,-1/32,-1/16,1/16,-1/16,1/16,0,0,0,1/16,-1/16,1/16,-1/16,0,0,1/32,-1/16,1/32,0,0,0,0,-1/32,1/16,-1/32, 1/32,0,-1/32,-1/16,0,1/16,0,1/32,0,-1/32,0,1/16,0,-1/16,0,0,0,0,1/16,0,-1/16,0,0,-1/32,0,1/32,1/16,0,-1/16,0,-1/32,0,1/32, 1/32,0,-1/32,0,1/16,0,-1/16,-1/32,0,1/32,1/16,0,-1/16,0,0,0,0,-1/16,0,1/16,0,0,0,1/32,0,-1/32,0,1/16,0,-1/16,-1/32,0,1/32, 1/32,1/16,1/32,1/16,1/16,1/16,1/16,1/32,1/16,1/32,0,0,0,0,0,0,0,0,0,0,0,0,0,-1/32,-1/16,-1/32,-1/16,-1/16,-1/16,-1/16,-1/32,-1/16,-1/32, 1/32,0,-1/32,0,1/16,0,-1/16,-1/32,0,1/32,-1/16,0,1/16,0,0,0,0,1/16,0,-1/16,0,0,0,1/32,0,-1/32,0,1/16,0,-1/16,-1/32,0,1/32, 1/32,-1/16,1/32,-1/16,1/16,-1/16,1/16,1/32,-1/16,1/32,0,0,0,0,0,0,0,0,0,0,0,0,0,-1/32,1/16,-1/32,1/16,-1/16,1/16,-1/16,-1/32,1/16,-1/32, 1/32,-1/16,1/32,0,0,0,0,-1/32,1/16,-1/32,1/16,-1/16,1/16,-1/16,0,0,0,-1/16,1/16,-1/16,1/16,0,0,1/32,-1/16,1/32,0,0,0,0,-1/32,1/16,-1/32, 1/32,0,-1/32,1/16,0,-1/16,0,1/32,0,-1/32,0,-1/16,0,1/16,0,0,0,0,-1/16,0,1/16,0,0,-1/32,0,1/32,-1/16,0,1/16,0,-1/32,0,1/32, 1/32,1/16,1/32,0,0,0,0,-1/32,-1/16,-1/32,-1/16,-1/16,-1/16,-1/16,0,0,0,1/16,1/16,1/16,1/16,0,0,1/32,1/16,1/32,0,0,0,0,-1/32,-1/16,-1/32, 1/32,0,-1/32,-1/16,0,1/16,0,1/32,0,-1/32,0,-1/16,0,1/16,0,0,0,0,-1/16,0,1/16,0,0,-1/32,0,1/32,1/16,0,-1/16,0,-1/32,0,1/32, 1/32,0,-1/32,0,-1/16,0,1/16,-1/32,0,1/32,1/16,0,-1/16,0,0,0,0,-1/16,0,1/16,0,0,0,1/32,0,-1/32,0,-1/16,0,1/16,-1/32,0,1/32, 1/32,-1/16,1/32,1/16,-1/16,1/16,-1/16,1/32,-1/16,1/32,0,0,0,0,0,0,0,0,0,0,0,0,0,-1/32,1/16,-1/32,-1/16,1/16,-1/16,1/16,-1/32,1/16,-1/32, 1/32,0,-1/32,0,-1/16,0,1/16,-1/32,0,1/32,-1/16,0,1/16,0,0,0,0,1/16,0,-1/16,0,0,0,1/32,0,-1/32,0,-1/16,0,1/16,-1/32,0,1/32, 1/32,1/16,1/32,-1/16,-1/16,-1/16,-1/16,1/32,1/16,1/32,0,0,0,0,0,0,0,0,0,0,0,0,0,-1/32,-1/16,-1/32,1/16,1/16,1/16,1/16,-1/32,-1/16,-1/32, 1/64,1/32,1/64,-1/32,-1/32,-1/32,-1/32,1/64,1/32,1/64,1/32,1/32,1/32,1/32,-1/32,-1/8,-1/32,1/32,1/32,1/32,1/32,-1/32,-1/32,1/64,1/32,1/64,-1/32,-1/32,-1/32,-1/32,1/64,1/32,1/64, 1/32,0,-1/32,0,-1/16,0,1/16,-1/32,0,1/32,0,1/16,0,-1/16,-1/16,0,1/16,0,-1/16,0,1/16,1/16,-1/16,-1/32,0,1/32,0,1/16,0,-1/16,1/32,0,-1/32, 1/64,-1/32,1/64,1/32,-1/32,1/32,-1/32,1/64,-1/32,1/64,-1/32,1/32,-1/32,1/32,-1/32,1/8,-1/32,-1/32,1/32,-1/32,1/32,-1/32,-1/32,1/64,-1/32,1/64,1/32,-1/32,1/32,-1/32,1/64,-1/32,1/64, 1/32,0,-1/32,-1/16,0,1/16,0,1/32,0,-1/32,1/16,0,-1/16,0,-1/16,0,1/16,1/16,0,-1/16,0,-1/16,1/16,1/32,0,-1/32,-1/16,0,1/16,0,1/32,0,-1/32, 1/32,1/16,1/32,0,0,0,0,-1/32,-1/16,-1/32,0,0,0,0,-1/16,0,-1/16,0,0,0,0,1/16,1/16,-1/32,-1/16,-1/32,0,0,0,0,1/32,1/16,1/32, 1/32,0,-1/32,1/16,0,-1/16,0,1/32,0,-1/32,-1/16,0,1/16,0,-1/16,0,1/16,-1/16,0,1/16,0,-1/16,1/16,1/32,0,-1/32,1/16,0,-1/16,0,1/32,0,-1/32, 1/32,-1/16,1/32,0,0,0,0,-1/32,1/16,-1/32,0,0,0,0,-1/16,0,-1/16,0,0,0,0,1/16,1/16,-1/32,1/16,-1/32,0,0,0,0,1/32,-1/16,1/32, 1/64,-1/32,1/64,-1/32,1/32,-1/32,1/32,1/64,-1/32,1/64,1/32,-1/32,1/32,-1/32,-1/32,1/8,-1/32,1/32,-1/32,1/32,-1/32,-1/32,-1/32,1/64,-1/32,1/64,-1/32,1/32,-1/32,1/32,1/64,-1/32,1/64, 1/32,0,-1/32,0,1/16,0,-1/16,-1/32,0,1/32,0,-1/16,0,1/16,-1/16,0,1/16,0,1/16,0,-1/16,1/16,-1/16,-1/32,0,1/32,0,-1/16,0,1/16,1/32,0,-1/32, 1/64,1/32,1/64,1/32,1/32,1/32,1/32,1/64,1/32,1/64,-1/32,-1/32,-1/32,-1/32,-1/32,-1/8,-1/32,-1/32,-1/32,-1/32,-1/32,-1/32,-1/32,1/64,1/32,1/64,1/32,1/32,1/32,1/32,1/64,1/32,1/64; // This is the ring of probability distributions. ring rP = 0,(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36),dp; //This is the Fourier transform. matrix qtop[33][36] = 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,0,-1,0,1,0,-1,-1,0,1,1,0,-1,0,0,1,0,-1,-1,0,1,0,0,-1,0,1,1,0,-1,0,1,0,-1,-1,0,1, 1,-1,1,-1,1,-1,1,1,-1,1,1,-1,1,-1,-1,1,-1,1,1,-1,1,-1,-1,1,-1,1,1,-1,1,-1,1,-1,1,1,-1,1, 1,0,-1,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,-1,0,1,-1,0,1,0,-1,0,1, 1,1,1,0,0,0,0,-1,-1,-1,0,0,0,0,1,1,1,1,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,1,1,1, 1,0,-1,-1,0,1,0,1,0,-1,0,-1,0,1,0,1,0,-1,0,-1,0,1,0,1,0,-1,-1,0,1,1,0,-1,0,-1,0,1, 1,-1,1,0,0,0,0,-1,1,-1,0,0,0,0,-1,1,-1,1,0,0,0,0,1,-1,1,-1,-1,1,-1,0,0,0,0,1,-1,1, 1,-1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,1,-1,1,1,-1,1,-1,1,-1,1, 1,0,-1,0,-1,0,1,-1,0,1,-1,0,1,0,0,1,0,-1,1,0,-1,0,0,-1,0,1,1,0,-1,0,-1,0,1,-1,0,1, 1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1, 1,0,-1,1,0,-1,0,1,0,-1,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,1,0,-1,0,1,0,-1, 1,1,1,0,0,0,0,-1,-1,-1,1,1,1,1,0,0,0,0,-1,-1,-1,-1,0,0,0,0,1,1,1,0,0,0,0,-1,-1,-1, 1,0,-1,-1,0,1,0,1,0,-1,1,0,-1,0,-1,0,1,0,1,0,-1,0,-1,0,1,0,1,0,-1,-1,0,1,0,1,0,-1, 1,-1,1,0,0,0,0,-1,1,-1,1,-1,1,-1,0,0,0,0,-1,1,-1,1,0,0,0,0,1,-1,1,0,0,0,0,-1,1,-1, 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,0,-1,0,0,0,0,-1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,1,0,0,0,0,1,0,-1, 1,-1,1,-1,1,-1,1,1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,-1,1,-1,1,-1,-1,1,-1, 1,0,-1,1,0,-1,0,1,0,-1,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,1,0,-1,1,0,-1,0,1,0,-1, 1,-1,1,0,0,0,0,-1,1,-1,-1,1,-1,1,0,0,0,0,1,-1,1,-1,0,0,0,0,1,-1,1,0,0,0,0,-1,1,-1, 1,0,-1,-1,0,1,0,1,0,-1,-1,0,1,0,1,0,-1,0,-1,0,1,0,1,0,-1,0,1,0,-1,-1,0,1,0,1,0,-1, 1,1,1,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,-1,-1,-1, 1,-1,1,1,-1,1,-1,1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,-1,-1,1,-1,1,-1,1,-1, 1,1,1,-1,-1,-1,-1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,1,1,1,1,-1,-1,-1, 1,-1,1,1,-1,1,-1,1,-1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,1,-1,1,-1,1,-1,1, 1,0,-1,0,-1,0,1,-1,0,1,1,0,-1,0,0,-1,0,1,-1,0,1,0,0,1,0,-1,1,0,-1,0,-1,0,1,-1,0,1, 1,1,1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,-1,-1,1,1,1, 1,0,-1,1,0,-1,0,1,0,-1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,-1,0,1,-1,0,1,0,-1,0,1, 1,-1,1,0,0,0,0,-1,1,-1,0,0,0,0,1,-1,1,-1,0,0,0,0,-1,1,-1,1,-1,1,-1,0,0,0,0,1,-1,1, 1,0,-1,-1,0,1,0,1,0,-1,0,1,0,-1,0,-1,0,1,0,1,0,-1,0,-1,0,1,-1,0,1,1,0,-1,0,-1,0,1, 1,1,1,0,0,0,0,-1,-1,-1,0,0,0,0,-1,-1,-1,-1,0,0,0,0,1,1,1,1,-1,-1,-1,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,1,1, 1,0,-1,0,1,0,-1,-1,0,1,-1,0,1,0,0,-1,0,1,1,0,-1,0,0,1,0,-1,1,0,-1,0,1,0,-1,-1,0,1, 1,-1,1,-1,1,-1,1,1,-1,1,-1,1,-1,1,1,-1,1,-1,-1,1,-1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,1,-1,1; ideal Fourier = qtop*transpose(maxideal(1)); // This is the list of polynomial invariants. map F = rQ, Fourier; ideal PInvariants = F(Invariants); // This is the polynomial parametrization. ring r = 0,(a0,a1,a2,b0,b1,b2,c0,c1,c2,d0,d1,d2),dp; ideal P = a0*b0*c0*d0+2*a1*b1*c1*d1+a2*b2*c2*d2, 2*a0*b1*c0*d0+2*a1*b0*c1*d1+2*a1*b2*c1*d1+2*a2*b1*c2*d2, a0*b2*c0*d0+2*a1*b1*c1*d1+a2*b0*c2*d2, 2*a0*b0*c0*d1+2*a1*b1*c1*d0+2*a1*b1*c1*d2+2*a2*b2*c2*d1, 2*a0*b1*c0*d1+2*a1*b0*c1*d0+2*a1*b2*c1*d2+2*a2*b1*c2*d1, 2*a0*b2*c0*d1+2*a1*b1*c1*d0+2*a1*b1*c1*d2+2*a2*b0*c2*d1, 2*a0*b1*c0*d1+2*a1*b0*c1*d2+2*a1*b2*c1*d0+2*a2*b1*c2*d1, a0*b0*c0*d2+2*a1*b1*c1*d1+a2*b2*c2*d0, 2*a0*b1*c0*d2+2*a1*b0*c1*d1+2*a1*b2*c1*d1+2*a2*b1*c2*d0, a0*b2*c0*d2+2*a1*b1*c1*d1+a2*b0*c2*d0, 2*a0*b0*c1*d0+2*a1*b1*c0*d1+2*a1*b1*c2*d1+2*a2*b2*c1*d2, 2*a0*b1*c1*d0+2*a1*b0*c0*d1+2*a1*b2*c2*d1+2*a2*b1*c1*d2, 2*a0*b2*c1*d0+2*a1*b1*c0*d1+2*a1*b1*c2*d1+2*a2*b0*c1*d2, 2*a0*b1*c1*d0+2*a1*b0*c2*d1+2*a1*b2*c0*d1+2*a2*b1*c1*d2, 2*a0*b0*c1*d1+2*a1*b1*c0*d0+2*a1*b1*c2*d2+2*a2*b2*c1*d1, 2*a0*b1*c1*d1+2*a1*b0*c0*d0+2*a1*b2*c2*d2+2*a2*b1*c1*d1, 2*a0*b2*c1*d1+2*a1*b1*c0*d0+2*a1*b1*c2*d2+2*a2*b0*c1*d1, 2*a0*b1*c1*d1+2*a1*b0*c2*d2+2*a1*b2*c0*d0+2*a2*b1*c1*d1, 2*a0*b0*c1*d2+2*a1*b1*c0*d1+2*a1*b1*c2*d1+2*a2*b2*c1*d0, 2*a0*b1*c1*d2+2*a1*b0*c0*d1+2*a1*b2*c2*d1+2*a2*b1*c1*d0, 2*a0*b2*c1*d2+2*a1*b1*c0*d1+2*a1*b1*c2*d1+2*a2*b0*c1*d0, 2*a0*b1*c1*d2+2*a1*b0*c2*d1+2*a1*b2*c0*d1+2*a2*b1*c1*d0, 2*a0*b0*c1*d1+2*a1*b1*c0*d2+2*a1*b1*c2*d0+2*a2*b2*c1*d1, 2*a0*b1*c1*d1+2*a1*b0*c0*d2+2*a1*b2*c2*d0+2*a2*b1*c1*d1, 2*a0*b2*c1*d1+2*a1*b1*c0*d2+2*a1*b1*c2*d0+2*a2*b0*c1*d1, 2*a0*b1*c1*d1+2*a1*b0*c2*d0+2*a1*b2*c0*d2+2*a2*b1*c1*d1, a0*b0*c2*d0+2*a1*b1*c1*d1+a2*b2*c0*d2, 2*a0*b1*c2*d0+2*a1*b0*c1*d1+2*a1*b2*c1*d1+2*a2*b1*c0*d2, a0*b2*c2*d0+2*a1*b1*c1*d1+a2*b0*c0*d2, 2*a0*b0*c2*d1+2*a1*b1*c1*d0+2*a1*b1*c1*d2+2*a2*b2*c0*d1, 2*a0*b1*c2*d1+2*a1*b0*c1*d0+2*a1*b2*c1*d2+2*a2*b1*c0*d1, 2*a0*b2*c2*d1+2*a1*b1*c1*d0+2*a1*b1*c1*d2+2*a2*b0*c0*d1, 2*a0*b1*c2*d1+2*a1*b0*c1*d2+2*a1*b2*c1*d0+2*a2*b1*c0*d1, a0*b0*c2*d2+2*a1*b1*c1*d1+a2*b2*c0*d0, 2*a0*b1*c2*d2+2*a1*b0*c1*d1+2*a1*b2*c1*d1+2*a2*b1*c0*d0, a0*b2*c2*d2+2*a1*b1*c1*d1+a2*b0*c0*d0; // This checks that the polynomial parametrization // lies on the probability simplex. // It requires suma.sing. Most likely, you should // change the directory where you saved this file. // If you do have this file, you should uncomment // the following two lines. // < "/home/lgp/singular/suma.sing"; // Suma(Substitute(2,P)); // This checks that the PInvariants vanish at // the polynomial parametrization. map Evaluate = rP, P; // The following command takes a lot of space and time to // finish for larger models. // ideal Z = Evaluate(PInvariants); setring rP; ideal Z; int i; for (i=1; i<= size(PInvariants); i++) { i; Z = PInvariants[i]; setring r; Evaluate(Z); setring rP; }