#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 | e56adf4325379d05441efb4dd9487c2cc7904ddc
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by behackl):
Replying to [comment:75 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))`
>
I do like the version with explicit ordinals in the errors more, so I
fixed them. :-)
> Concerning further optimization: testing degree is of course a
worthwhile 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.
Of course, there is always potential to improve the performance. However,
like you said, this should happen in a follow-up ticket.
--
Ticket URL: <http://trac.sagemath.org/ticket/20086#comment:77>
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.