Feature #1103
Pseudo-zero-dim ideals
Status:
In Progress
Priority:
Normal
Assignee:
Category:
Improving
Target version:
Description
We have several functions which work well for 0-dim ideals but which give "Not yet implemented" for non-0-dim ideals.
However, the current implementations would work fine in the "obvious subring":
use Q[x,y,z]; IsPrimary(ideal(x^2,y)); --> ERR::NYI
Of course, CoCoA will compute the answer if the ideal is mapped into QQ[x,y]...
so why not do this automatically?
Related issues
History
#1
Updated by John Abbott almost 7 years ago
Here is an example where it would be faster to recognize that the ideal is 0-dim in an "obvious subring":
use QQ[x,y,z]; I := ideal(x^5 +x^2*z^3 -y^2*z^2, x*y^4 -z^5 +x*y^2*z, y^5 +x^2*z^3 -z^4); t0:=CpuTime(); rI := radical(I); TimeFrom(t0); ---> 68.255 -- Now adjoin redundant indet use P ::= QQ[x,y,z,t]; I := ideal(x^5 +x^2*z^3 -y^2*z^2, x*y^4 -z^5 +x*y^2*z, y^5 +x^2*z^3 -z^4); t0:=CpuTime(); rI := radical(I); TimeFrom(t0); --> don't know how much time -- it takes *AGES*
#2
Updated by John Abbott over 6 years ago
- Related to Feature #658: Indets actually in a poly (or vector or matrix) added
#3
Updated by John Abbott over 5 years ago
- Related to Bug #1248: MinPolyQuot: guaranteed and ideal without GBasis added
#4
Updated by John Abbott over 5 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
Note also that if we map into a temporary ring without redundant indets, then we can also choose a convenient term-ordering (e.g. DegRevLex
if we need to compute a GBasis)
#5
Updated by Anna Maria Bigatti over 5 years ago
- Related to Feature #1254: New function: MinPoly for pseudo-zero-dimensional ideals added
#6
Updated by Anna Maria Bigatti over 5 years ago
- Related to deleted (Bug #1248: MinPolyQuot: guaranteed and ideal without GBasis)
#7
Updated by Anna Maria Bigatti over 2 years ago
- Assignee set to Anna Maria Bigatti
There is something very similar for RationalSolve in CoCoA-5.
Anna: consider that design and copy:
ListX := FindIndets(PolyList); // will be non-empty since we've checked PolyList P := RingOf(PolyList[1]); SurplusIndets := diff(indets(P), ListX); J := ideal(PolyList)+ideal(P,SurplusIndets);
#8
Updated by Anna Maria Bigatti over 2 years ago
- % Done changed from 10 to 30
#9
Updated by Anna Maria Bigatti over 2 years ago
see also #1254
#10
Updated by John Abbott 5 months ago
- Related to Design #849: Cleanup MinPoly code added
#11
Updated by John Abbott 5 months ago
- Related to Slug #1569: IsInRadical too slow (test-RadicalMembership) added