adipopescu / To-Do-List

My Singular Project
0 stars 0 forks source link

bug in std(), branch SignatureSB #20

Closed jakobkroeker closed 9 years ago

fruhbis-kruger-anne commented 9 years ago

First example: // **_dPolyError: Zero coef occured at occured for poly: 0_y(4) addr:0x7f0650074360 size:48 allocated at ?? Question: Did we kill an element in PostReduce which is still involved in pairs? Need to check this.

Second example: works fine!

Third example: triggers debugger Something breaks in the module case!!! Did we forget to take care of the gen(...) when adding the monomial?

adipopescu commented 9 years ago

At the first example, i forgot to initialize somewhere a polynomial and it should have been NULL. First example now working. This is the output:

J[1]=18 J[2]=3_x(5)+12 J[3]=9_x(4) J[4]=2_x(1) J[5]=x(5)^2+2_x(5)+4 J[6]=x(1)_x(5) J[7]=x(4)^2-x(3)_x(5) J[8]=x(3)_x(4)-x(5) J[9]=x(1)_x(4) J[10]=x(3)^2-x(4) J[11]=x(1)^2-13_x(5)^2-11_x(5)-1

And the result is immediate

adipopescu commented 9 years ago

Second example works now fine: J[1]=19 J[2]=x(3)-9 J[3]=y(4) J[4]=y(3)-9 J[5]=y(1)-13

adipopescu commented 9 years ago

Third example works fine.

fruhbis-kruger-anne commented 9 years ago

Great. Maybe Jakob should do some more tests...

adipopescu commented 9 years ago

Still remains the last one. I will look at it tomorrow.

adipopescu commented 9 years ago

Fourth one is also fixed now: the problem was with calling kstd inside kstd because some global variables have been deleted at the end of the second one.

adipopescu commented 9 years ago

adding now the tests

jakobkroeker commented 9 years ago

more std() beasts:

// eats all mem
ring rng = integer,(x,y,z),(lp);

ideal J = -12xy-59xz+40x-22y2,
-109x-22y2z2-42,
69x2z-97x-115y-19;
ideal stdJ  = std(J);
// does not finish in reasonable time
ring rng = integer,(x,y,z),dp;

ideal J = -12xy-59xz+40x-22y2,
-109x-22y2z2-42,
69x2z-97x-115y-19;
ideal stdJ  = std(J);

time: 26min on andromeda

jakobkroeker commented 9 years ago

one more:


ring rng = (integer),(x,y,z),(dp(3),C);
option(redTail);
option(noredSB);

ideal I = 126z3-145xz-136,-118y4z+88y2z3+122y2+3yz,126y2z3-79xyz-50xz;
ideal J = 59x2yz+125xy2z+77xz+15,72y+148z,89xyz2+81y;
ideal gI = groebner(I);
ideal ggI = groebner(gI);
gI[12] == ggI[12]; //false. ok or not?
adipopescu commented 9 years ago

in the first two examples our new strategy does nothing since we cannot find a constant / monomial in the standard basis so, the other polynomials will explode. Also over Q, the coefficients are starting to be huge.

Do you have the result for these two in M2? I doubt that the result will be small and nice.

jakobkroeker commented 9 years ago

Do you have the result for these two in M2? I doubt that the result will be small and nice.

which example do you mean? just check it by yourself :

# default is dp ordering:
rng = ZZ[x,y,z]
I = ideal(-12*x*y-59*x*z+40*x-22*y^ 2,-109*x-22*y^ 2*z^ 2-42,69*x^2*z-97*x-115*y-19)
groebnerBasis I

# lp ordering, see http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.6/share/doc/Macaulay2/Macaulay2Doc/html/_monomial_sporderings.html
rng = ZZ[x,y,z,  MonomialOrder => Lex ]
I = ideal(-12*x*y-59*x*z+40*x-22*y^ 2,-109*x-22*y^ 2*z^ 2-42,69*x^2*z-97*x-115*y-19)
groebnerBasis I
adipopescu commented 9 years ago

The result from M2 is immediate for dp, in Singular it take more than 7 Minutes.

preIntegerCheck does not improve the time since we haven't any constant / monomial to keep the coefficients down.

So we will have to improve this in the future (maybe a better order of the terms?)

jakobkroeker commented 9 years ago

The result from M2 is immediate for dp, in Singular it take more than 7 Minutes. preIntegerCheck does not improve the time since we haven't any constant / monomial to keep the coefficients down.

ok, good to know. Remark: to my knowledge, groebner basis computation in M2 is less optimized than Singulars counterpart, so therefore I suspect (I have no evidence) that there are still (optimization?) bugs in Singular and the computation finishes just by luck.

Question: do the last examples crash in Singular for your install?

fruhbis-kruger-anne commented 9 years ago

I'll be in KL on Monday and hopefully on Thursday, but the latter is not clear. We shall look at this then.

adipopescu commented 9 years ago

i haven't tasted the last 2 examples. I saw that the third last example finished, but the output was too big to check it.

jakobkroeker commented 9 years ago
LIB("primdec.lib");
ring rng = (integer),(xw,xq,xk),(lp(2),lp(1),C);
ideal I = -4*xk+10;
ideal J = -7*xw+4*xk,-13;
ASSUME(0, idealsEqual( intersect(I,J) , intersect(std(I),std(J) )) ); //fails

update: still fails!