Hello, I have an ideal "jed" with 9 generators in the polynomial ring over the rationals in 8 variables, with pure lexicographic ordering. Maple 11 finds its groebner basis in less than a minute (really in about 20 sec) while the Singular 3-0-4 command (with prot option on) ideal gb=groebner(jed); takes more than 2 hours. They both produce gb of size 8 and I am convinced that at least gb[1] is the same. The example has not be concocted for this purpose, it appeared in my work. I expect Singular to be more efficient in this kind of computation than Maple and so I am very much puzzled by this example. If anybody is interested, here is the file that generates "jed". Thanks, DZ Djokovic
LIB "matrix.lib"; proc ReD(poly p) { return( subst(p,j,0) ); } proc ImD(poly p) { return( ReD((-j)*p) ); } proc KonjMat(matrix v) { return( subst(v,j,-j) ); } proc HermTr(matrix v) { return( transpose(KonjMat(v)) ); } proc UnInv(matrix X) { def Y=HermTr(X); ideal i=trace(X*X)/2,trace(X*Y),trace(X*X*X)/3,trace(X*X*Y), trace(X*X*Y*Y),trace(X*Y*X*X*Y*Y); ideal L=ReD(i[1]),ImD(i[1]),i[2],ReD(i[3]),ImD(i[3]), ReD(i[4]),ImD(i[4]),i[5],i[6]; return(L); } ring R=(0,j),(x,r,y,z,u,p,v,q),lp; minpoly=j2+1; matrix A[3][3]=2+3j,6,0, 0,1-3j,1, 4,0,-3; pmat(A); matrix B[3][3]=u+j*p,z,0, 0,v+j*q,x+j*r, y,0; B[3,3]=-trace(B); pmat(B); ideal iA=UnInv(A); ideal iB=UnInv(B); int m=size(iA); m; ideal jed=iB[1]-iA[1]; for(int i=2; i<=m ; i++ ) { jed=jed,iB[i]-iA[i]; } def s="ideal jed="+string(jed); size(s); ring S=0,(x,r,y,z,u,p,v,q),lp; execute(s); size(jed); vdim(jed); option(prot); ideal gb=groebner(jed);
|
|