Opened 8 years ago

Closed 8 years ago

#698 closed bug (not a bug)

overflow hell strikes back

Reported by: kroeker@… Owned by: somebody
Priority: minor Milestone: 4-1-0 and higher
Component: dontKnow Version: 4-0-1
Keywords: exponent overflow hell Cc:

Description

A working example for a starters

LIB("primdec.lib");
ring R = 0,(x,y),dp;
short = 0;
ring G = 0,(a,b),dp;
short = 0;
ideal phi = a^3,b;
map m = R,phi;
ideal I = a^645*b;
setring R;
ideal pI = preimage(G,m,I);

setring G;
ideal mpI = m(pI);
mpI; // = a^645*b; ok
ASSUME(0, idealsEqual(mpI , I) ); //ok

and now a failing one:

LIB("primdec.lib");
ring R = 0,(x,y),dp;
short = 0;
ring G = 0,(a,b),dp;
short = 0;
ideal phi = a^3,b;
map m = R,phi;
ideal I = a^2147483645*b;
setring R;
ideal pI = preimage(G,m,I);

setring G;
ideal mpI = m(pI);
mpI; // mpI[1]=a^65535*b
ASSUME(0, idealsEqual(mpI , I) ); // fails

This is not just a single issue, this is overflow hell, you know? (unfortunately)

And it is very unlikely that I will catch them all.

Change History (2)

comment:1 Changed 8 years ago by kroeker@…

update: the failing example should really be

LIB("primdec.lib");
ring R = 0,(x,y),dp;
short = 0;
ring G = 0,(a,b),dp;
short = 0;
ideal phi = a^3,b;
map m = R,phi;
ideal I = a^131070;
setring R;
ideal pI = preimage(G,m,I);
pI;
ideal pIexpected =  x^43690;
setring G;
ideal mpIexpected = m(pIexpected);
mpIexpected;
ASSUME(0, idealsEqual(mpIexpected , I) );

ideal mpI = m(pI);
mpI;
ASSUME(0, idealsEqual(mpI , I) );

( 2147483645 is not 0 mod 3)

But screwing up that example did let me see another flaw of preimage. Can you see it, too?

comment:2 Changed 8 years ago by hannes

Resolution: not a bug
Status: newclosed

"not a bug" is not really the right solution, but the closest one. Should be "not correctly stated problem". Solved by changing the policy from "trying the best possible" to "sticking strictly to the documentation" (which limits the maximal expontent to 32767 in this case).

Note: See TracTickets for help on using tickets.