Feature #48
Feature #39: Squarefree factorization
Feature #43: Squarefree factorization - for polynomials
Feature #47: Squarefree factorization - multivariate polynomials
Squarefree factorization - multivariate polynomials, char 0
Description
No obvious new conceptual problems. Efficiency may be an issue. Consider modular approach?
What happens if coeffs are not in QQ? Consider the ring QQ[x][y,z]
History
#1 Updated by John Abbott over 10 years ago
- Status changed from New to Closed
- Assignee set to John Abbott
- % Done changed from 0 to 100
This case is effectively covered by the porting of d'Ali's code.
Might still need some tweaking to handle "strange" cases such as QQ[x][y,z]
.
#2 Updated by Anna Maria Bigatti over 10 years ago
- Target version set to CoCoALib-0.99531
#3 Updated by Anna Maria Bigatti over 8 years ago
In factor.C
there is the line:
if (IsQQ(R)) return SqFreeFactorChar0(f);
is it ok to substitute it with
if (characteristic(R)==0) return SqFreeFactorChar0(f);
?
#4 Updated by John Abbott over 8 years ago
I'm not sure; I suspect it will not work in every case.
What coeff ring did you have in mind? Were you thinking of a polynomial in a ring like QQ[x][y]
? In this case we could "flatten" the ring to QQ[x,y]
, compute the answer there, and then map it back to the original ring.
The existing code may work for algebraic extensions of QQ
... I'm too tired to check now.
#5 Updated by Anna Maria Bigatti over 8 years ago
John Abbott wrote:
I'm not sure; I suspect it will not work in every case.
I thought it would: in char 0 the square free (or radical) of a polynomial f is f/gcd(f,f').
So I imagined your algorithm does not actually depend on the specific (char 0) coefficient ring.
#6 Updated by John Abbott over 8 years ago
Good point! So if gcd
works then we can expect that squarefree decomposition works.
#7 Updated by Anna Maria Bigatti over 8 years ago
Anna Maria Bigatti wrote:
John Abbott wrote:
I'm not sure; I suspect it will not work in every case.
I thought it would: in char 0 the square free (or radical) of a polynomial f is f/gcd(f,f').
So I imagined your algorithm does not actually depend on the specific (char 0) coefficient ring.
Ah! here is where I got confused: this algorithm is for the univariate case!!
so, maybe we could give the answer for univariate polynomials (at least..)