Project

General

Profile

Feature #1417

RadicalZeroDim with extra parameter for GBasis timeout

Added by Anna Maria Bigatti about 4 years ago. Updated about 1 month ago.

Status:
In Progress
Priority:
Normal
Category:
Improving
Target version:
Start date:
14 Feb 2020
Due date:
% Done:

20%

Estimated time:
6.00 h
Spent time:

Description

We have seen how changing the timeout for GBasis can affect the time dramatically.
Should we make a function RadicalZeroDim(I, GBTimeout) so that the user can choose?


Related issues

Related to CoCoA-5 - Slug #1114: Some other examples for 0-dim radicalClosed2017-10-31

Related to CoCoALib - Slug #1375: Radical 0-dim: varied timingsClosed2019-12-09

Related to CoCoALib - Design #1378: Create two separate radical fns (for 0-dim ideals)New2019-12-20

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

History

#1 Updated by Anna Maria Bigatti about 4 years ago

  • Related to Slug #1114: Some other examples for 0-dim radical added

#2 Updated by Anna Maria Bigatti about 4 years ago

  • Related to Slug #1375: Radical 0-dim: varied timings added

#3 Updated by Anna Maria Bigatti about 4 years ago

  • Related to Design #1378: Create two separate radical fns (for 0-dim ideals) added

#4 Updated by Anna Maria Bigatti about 4 years ago

This is related but not quite the same as #1378.
The point is this: if we let more time to compute the partial GBases, we'll also have a better chance to compute the GBasis of the radical ideal.
If we just use "Seidenberg" (with a very fast radical computation) then its GBasis might be much slower!

Compare, think, decide.

#5 Updated by John Abbott about 3 years ago

What is the status of this issue?
As I recall radical now works fairly well for 0-dim ideals (see issue #948). But see also issue #1375.

A problem with the "timeout" parameter is that it could be hard to describe what exactly the parameter does/means.
Also what would the "timeout" parameter mean if the given ideal is not 0-dim?

#6 Updated by John Abbott about 3 years ago

  • % Done changed from 10 to 20

If no timeout is specified (i.e. the current situation) then some "heuristic" timeout is used.
Currently the heuristic seems to be 30s plus epsilon -- I did not investigate to see where epsilon comes from.

It might be nice to use a better heuristic? Or just KISS?

#7 Updated by John Abbott over 2 years ago

  • Target version changed from CoCoALib-0.99800 to CoCoALib-0.99850

#8 Updated by Anna Maria Bigatti 3 months ago

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

#9 Updated by John Abbott about 1 month ago

  • Target version changed from CoCoALib-0.99850 to CoCoALib-0.99880

I am currently unsure how useful it would be to let the caller choose a time-out in seconds.
It may be simpler to offer just vaguer options e.g. "low, medium, high" (or even just "low, high"). What do you think?

Also available in: Atom PDF