########################################################################## #24.maple # # # # This MAPLE code creates a Singular file which computes a # # Degree reverse Lexicographic Groebner basis. # # # # It treats the enumerative problem of 8 codimension 1 Schubert # # hypersurfaces in Grass(4,6), each defined by a 2-plane. # # There are 14 4-planes meeting 8 fixed 2-planes in C^6. # # # # seconds # # Computing a drl Gr\"obner basis (SINGULAR) .02 # # # ########################################################################## interface(quiet=true): Eq := s -> simplify(linalg[det](linalg[matrix]([ [1,s,s^2, s^3 , s^4 , s^5], [0,1,2*s,3*s^2,4*s^3, 5*s^4], [1,0, 0 , 0 , a , b ], [0,1, 0 , 0 , c , d ], [0,0, 1 , 0 , e , f ], [0,0, 0 , 1 , g , h ]]))): eqs:=[]: for i from 1 to 8 do eqs:=[eqs[],Eq(9-i)]: od: lprint(`//Execute this with:`); lprint(`//Singular --ticks-per-sec=100<24.sing`); lprint(`//`); lprint(`//ring R= 0, (a,b,c,d,e,f,g,h), dp;`); lprint(`//`); lprint(`//ring R= 0, (b,a,d,f,c,e,h,g), wp(5,4,4,3,3,2,2,1);`); lprint(`//`); lprint(`timer=1;`); lprint(`//`); lprint(`ring R= 0 , (a,b,c,d,e,f,g,h),dp;`); lprint(`ideal I=`); for i from 1 to 8 do lprint(eqs[i],`,`); od: lprint(`0;`); lprint(`int t=timer;`); lprint(`ideal G;`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`G= std(I);G= std(I);G= std(I);G= std(I);G= std(I);`); lprint(`int s=timer-t;`); lprint(`print("Time to compute 50 drl Groebner bases: "); `); lprint(`s;`); lprint(`print("Time units, counts per second:");`); lprint(`system("--ticks-per-sec");`); lprint(`degree(G);`); lprint(`ncols(G);`); lprint(`print(G);`); lprint(`quit;`); quit;