{ \\ PARI/GP-Script "FungWilliamsOpt93.gp" \\ 1st step of the principalization algorithm: \\ generating polynomials for simply real cubic fields allocatemem(512000000); dn="FungWilliamsPol93.csv"; \\ given bounds for the field discriminant lb=0; ub=1000000; \\ three nested loops for coefficients: \\ bounds for the coefficients by Godwin and Angell ub1=truncate(3.0+2.0*sqrt(sqrt(ub))); for(b1=1,ub1, uc1=truncate((b1^2+sqrt(ub))/3.0); ud1=truncate((b1^2-3.0+2.0*sqrt(ub))/6.0); for(c1=1,uc1, for(d1=1,ud1, \\ generating polynomial with trace b1 pol3=x^3-b1*x^2+c1*x-d1; if(polisirreducible(pol3), dsc3=nfdisc(pol3); \\ restriction to the given bounds if((-ub<=dsc3)&&(dsc3<=-lb), dscp=poldisc(pol3); ind=truncate(sqrt(dscp/dsc3)); ui=sqrt(124.0*b1^2+432.0*b1+4.0*sqrt(ub)+729.0)/(3.0*sqrt(3.0)); \\ exclusion of huge indices if(ind1, if((0==q[2][2]%3)&&!(0==q[2][1]%27), print1("d3=" dsc3); print1(" b=" b1); print1(" c=" c1); print1(" d=" d1); print(" ip=" ind); write1(dn,dsc3); write1(dn,";"); write1(dn,b1); write1(dn,";"); write1(dn,c1); write1(dn,";"); write(dn,d1); );\\ end if );\\ end if );\\ end if );\\ end if );\\ end if );\\ end if );\\ end for );\\ end for );\\ end for }