Project

General

Profile

Bug #1634

Unexpected or unhelpful error using GroebnerFanIdeals

Added by John Abbott over 2 years ago. Updated about 2 months ago.

Status:
In Progress
Priority:
Normal
Assignee:
-
Category:
enhancing/improving
Target version:
Start date:
22 Nov 2021
Due date:
% Done:

10%

Estimated time:
Spent time:

Description

Here is the troublesome input: it throws ArgTooBig

/**/ use QQ[x,y,z,t];
/**/ I := ideal(y^9*t-x, x^9*y-z^9*t, x^10-z*t, x*z^9-t^9);
/**/ SetVerbosityLevel(20);
/**/ GF := GroebnerFanIdeals(I);
*..*..*...*...*...*.--> ERROR: Argument to a numerical function too large (value would be too big)
--> [CoCoALib] OrdvArith::MatrixOrderingMod32749Impl ctor
--> WHERE: at line 89 (column 8) of GroebnerFan.cpkg5
-->   P := NewPolyRing(CoeffRing(RingOf(I)), IndetSymbols(RingOf(I)), M, 0);
-->        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


Related issues

Related to CoCoA-5 - Design #984: GroebnerFanIdeals: order matrices sometimes have "large" entriesIn Progress2016-11-26

History

#1 Updated by John Abbott over 2 years ago

I find the error quite surprising; at least the particular error that was thrown.
I had half expected there to be some problem (e.g. too many different ideals).
Is it just an overly entry in the order matrix?

Anyway, a more helpful message would be nice.

#2 Updated by John Abbott over 2 years ago

  • Related to Design #984: GroebnerFanIdeals: order matrices sometimes have "large" entries added

#3 Updated by John Abbott over 2 years ago

Here is a simpler failing example: I have just reduced the exponents

/**/ I := ideal(y^4*t-x, x^4*y-z^4*t, x^5-z*t, x*z^4-t^4);

If I reduce the exponents by 1 to 3 or 4 then the GFan computation completes.

#4 Updated by Anna Maria Bigatti over 2 years ago

The problem is that the ordering matrix has some big entry (after being converted into a matrix with positive entries).
Indeed I find the error message too verbose. I'd change "ERROR: Argument to a numerical function too large (value would be too big)" into:

ERROR: Number too big

#5 Updated by John Abbott about 2 months ago

  • Status changed from New to In Progress
  • Target version changed from CoCoA-5.4.2 to CoCoA-5.4.4
  • % Done changed from 0 to 10

This specific problem does not arise on a platform with 64-bit long; though no doubt a larger example would eventually trigger a problem.

Anna is probably right that the error message is too long, though I find her proposal too terse.
Maybe a reasonable compromise would be to remove the last part of the error message (in brackets)?

A better solution might be to intercept the exception, and replace it with one whose message is more comprehensible (in the context).

PS the reduced example produce a GFan with 2112 components. It took about 53s.
PPS I increased the exponents by 1: GFan contained 5871 components, and took about 183s

Also available in: Atom PDF