#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.

Reply via email to