#15513: Polynomial factorization over generic fields
-----------------------------+----------------------------
Reporter: nthiery | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: sage-6.1
Component: factorization | Keywords:
Merged in: | Authors:
Reviewers: | Report Upstream: N/A
Work issues: | Branch:
Commit: | Dependencies:
Stopgaps: |
-----------------------------+----------------------------
Factorization is a fundamental building block of computer algebra, yet
Sage is
still missing a generic implementation of factorization that would
work over any (reasonable) field. Students and colleagues are stumbling
over this over and over.
For example, the following currently raise NotImplementedError:
{{{
sage: K = QQ['x0,x1'].fraction_field()
sage: x0,x1 = K.gens()
sage: x = K['x'].gen()
sage: p = x^2 - (x0+x1)*x
sage: factor(p)
}}}
We might want this to work too:
{{{
sage: K = QQ['x0,x1']
sage: x0,x1 = K.gens()
sage: x = K['x'].gen()
sage: p = x^2 - (x0+x1)*x
sage: factor(p)
}}}
By the way, here is one of my favorite MuPAD demo about genericity:
{{{
Q := Dom::Rational:
Qx := Dom::Fraction(Dom::UnivariatePolynomial(x, Q)):
F := Dom::AlgebraicExtension(Qx, poly(z^2 - x, [z])):
P := Dom::UnivariatePolynomial(u,F):
P(u*z)*P(z)
x u
f := P(u^2 - x^3);
factor(f);
(u + x z) (u - x z)
}}}
This ought to work in Sage too, but it fails because Sage can't test
the primality of z^2-x below:
{{{
sage: Px.<x> = QQ[]
sage: Qx = Px.fraction_field()
sage: Qxz = Qx['z']
sage: z = Qxz.gen()
sage: (z^2-x).is_irreducible()
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call
last)
}}}
So the algebraic extension is not recognized as giving a field:
{{{
sage: F = Qxz.quo(z^2-x)
sage: F in Fields()
}}}
Having a factorization over generic fields should do the job.
--
Ticket URL: <http://trac.sagemath.org/ticket/15513>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.