#20086: rational powers in ZZ[X] and QQ[X]
-------------------------------------+-------------------------------------
Reporter: cheuberg | Owner:
Type: defect | Status: needs_review
Priority: major | Milestone: sage-7.2
Component: basic arithmetic | Resolution:
Keywords: | Merged in:
Authors: Clemens | Reviewers: Benjamin Hackl,
Heuberger, Vincent Delecroix, | Vincent Delecroix
Benjamin Hackl | Work issues:
Report Upstream: N/A | Commit:
Branch: public/20086 | 753462d07465a87797609856bec781797da9a6b1
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by nbruin):
Perhaps don't bother getting a grammatically correct ordinal. Note that
the current code doesn't get it correct anyway: It's 21st, 22nd, 23rd.
Better to formulate the error message in a way that doesn't depend on
correct ordinal spelling, e.g.
`ValueError("(%s)^(1/%s) does not lie in ring"%(f,n))`
Concerning further optimization: testing degree is of course a cheap
trick. A follow-up ticket should probably use square-free factorization;
something along the lines:
- if the characteristic p divides n then first check that the polynomial
only has p-th powers of the variables in it. Take p-th root (i.e., replace
variables and take p-th root of coefficients) and take (n/p)-th root of
resulting polynomial
- In characteristic 0 then take g=f/GCD(f,f.derivative()), check that
`g^n` divides `f`, take n-th root of `f/(g^n)`, multiply by g and return
that.
In positive characteristic we may first need to take all p-th powers out.
--
Ticket URL: <http://trac.sagemath.org/ticket/20086#comment:75>
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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.