Project

General

Profile

Bug #1779

Radical error with lex (again)

Added by Anna Maria Bigatti 3 months ago. Updated 2 months ago.

Status:
Closed
Priority:
Normal
Category:
Various
Target version:
Start date:
05 Feb 2024
Due date:
% Done:

100%

Estimated time:
Spent time:

Description

This problem resurfaced now that radical is in C++.

/**/ use QQ[x,y],lex;
/**/ I := ideal(x*y +x,  x^2 +x);
/**/ radI := radical(I); --> triggered error
--> ERROR: Ring is not standard graded
--> [CoCoALib] dim

I'm very grateful to test/exbugs and to its reference to redmine with the solution ;-)


Related issues

Related to CoCoA-5 - Bug #1577: radical: lex order, ERROR: Ring is not standard gradedClosed2021-02-15

Related to CoCoALib - Slug #1646: radical: could be more cleverClosed2022-01-17

Related to CoCoALib - Feature #1780: radical for ideals in SparsePolyRing: code in C++ Closed2024-02-06

Related to CoCoALib - Support #1782: Make CoCoALib test file for radicalNew2024-02-23

History

#1 Updated by Anna Maria Bigatti 3 months ago

  • Related to Bug #1577: radical: lex order, ERROR: Ring is not standard graded added

#2 Updated by Anna Maria Bigatti 3 months ago

  • Subject changed from Radical error with lex to Radical error with lex (again)

#3 Updated by Anna Maria Bigatti 3 months ago

  • % Done changed from 0 to 30

first bug fixed.
New bug:

/**/ use ZZ/(5)[x,y,z];
/**/ SetVerbosityLevel(99);
/**/ radI := radical(ideal(x^2+z,y+z)); --> gave error in factorizer
--> ERROR: Poly must be non-constant
--> [CoCoALib] UnivariateIndetIndex

in the code there is
factorization<RingElem> Q = factor(one(RingOf(I))); // sichtbar machen

which is a trick. Investigating why and how to avoid it

#4 Updated by Anna Maria Bigatti 3 months ago

  • Related to Slug #1646: radical: could be more clever added

#5 Updated by John Abbott 3 months ago

  • Status changed from New to In Progress

It would be easy to allow the factorize to return a result if the input is a non-zero constant.
I suppose I made it trigger an error because it is fairly pointless factorizing a constant.
Should I change the code to allow factorizing a constant?

UPDATE after skype discussion, we have decided to leave factorizing a deg 0 poly as an error

#6 Updated by Anna Maria Bigatti 3 months ago

  • Related to Feature #1780: radical for ideals in SparsePolyRing: code in C++ added

#7 Updated by Anna Maria Bigatti 3 months ago

John Abbott wrote:

It would be easy to allow the factorize to return a result if the input is a non-zero constant.
I suppose I made it trigger an error because it is fairly pointless factorizing a constant.
Should I change the code to allow factorizing a constant?

Right now I'm chasing another problem. But I'll try to understand why there was that line, and then see whether that initialization made sense in that context.

#8 Updated by Anna Maria Bigatti 3 months ago

  • Status changed from In Progress to Feedback
  • % Done changed from 30 to 80

Anna Maria Bigatti wrote:

John Abbott wrote:

It would be easy to allow the factorize to return a result if the input is a non-zero constant.
I suppose I made it trigger an error because it is fairly pointless factorizing a constant.
Should I change the code to allow factorizing a constant?

I don't know why there was that initialization.
Now I call directly

    factorization<RingElem> Q = SqFreeFactor(G); // redmine #1779.#3

And I haven't met any problem with the tests I have.

It seems all fine.
I have another set of tests (CoCoALib tests) which need some polishing. Then I'll close this issue.

#9 Updated by Anna Maria Bigatti 2 months ago

  • Related to Support #1782: Make CoCoALib test file for radical added

#10 Updated by Anna Maria Bigatti 2 months ago

  • % Done changed from 80 to 90

I made a new issue for implementing and running the tests.
Closing this one ... hoping non errors will come from the tests.

#11 Updated by John Abbott 2 months ago

  • % Done changed from 90 to 80

#12 Updated by Anna Maria Bigatti 2 months ago

  • Status changed from Feedback to Closed
  • % Done changed from 80 to 100

Also available in: Atom PDF