Note that in some sqrt methods there are useful arguments

- extend (boolean): whether we allow to take extensions
- all (boolean): whether to return one or all square roots

I believe that the same should apply for nth_root (?).

The case of n not invertible in the base ring is taken care of by the n-th root method of polynomials that I am working on.

Vincent

On 21/12/2017 12:30, Kiran Kedlaya wrote:
Perhaps a relevant analogy is:

sage: u = RR(-1)
sage: sqrt(u)
1.00000000000000*I
sage: sqrt(u).parent()
Complex Field with 53 bits of precision

where the choice of one of the two square roots of -1 is in some sense not
natural, but we make it anyway.

Also, one needs to decide what happens when taking an n-th root if n is not
invertible in the base ring, or if it is zero in the base ring.

Anyway, this becomes a more meaningful question once the ring of Puiseux
series become available in Sage!

Kiran

On Thursday, December 21, 2017 at 3:59:45 AM UTC-8, John Cremona wrote:

I agree that the behaviour you would like is desirable in some
circumstances, but possibly not all.  Note that to get the square root of
your power series, as well as adjoining t^{1/2} when the valuation is odd,
you also need to adjoin the square root of the leading coefficient (if it
is not a square).  In your example the square roots are power series in
t^{1/2} with coefficients in QQ(\sqrt{2}).  So you could argue that you
would be making a degree 4 extension to get a square root, which is
overkill.  (In an analogous way perhaps some people might extend Q to get
(-2).sqrt() by adjoinging I=sqrt(-1) and sqrt(2), and say that the answer
is sqrt(2)*I.  I know that I would not give that as the answer, but I bet
many people who are not number theorists would "simplify" sqrt(-2) like
that).

Perhaps the simplest quadratic extension for your example would be QQ[[s]]
with s^2=2*t.  How about that as a compromise?  i.e. if the lowest order
term is not an n'th power then adjoin its n'th root?

John

On 21 December 2017 at 11:17, Vincent Delecroix <[email protected]
<javascript:>> wrote:

Dear all,

I might introduce a non backward incompatible change for square root (and
more generally n-th roots) of power series.

While working on [1] I stumbled on a weird implementation of square root
for power series [2]. Namely, when extend=True it might just return a
formal element p so that p^2 is the initial series (example at [3])

     sage: K.<t> = PowerSeriesRing(QQ, 5)
     sage: f = 2*t + t^3 + O(t^4)
     sage: s = f.sqrt(extend=True, name='sqrtf'); s
     sqrtf
     sage: s^2
     2*t + t^3 + O(t^4)

A much more meaningful answer is to return a Puiseux series in t^(1/2)
which is the natural algebraic closure of power series (at least in
characteristic zero). Of course, I am aware that Puiseux series are not yet
there... and this is one of our oldest open ticket [4].

Anybody disagree?

  [1] https://trac.sagemath.org/ticket/10720

  [2]
https://github.com/sagemath/sagetrac-mirror/blob/master/src/sage/rings/power_series_ring_element.pyx#L1186

  [3]
https://github.com/sagemath/sagetrac-mirror/blob/master/src/sage/rings/power_series_ring_element.pyx#L1253

  [4] https://trac.sagemath.org/ticket/4618

Vincent

--
You received this message because you are subscribed to the Google Groups
"sage-nt" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected] <javascript:>.
To post to this group, send an email to [email protected]
<javascript:>.
Visit this group at https://groups.google.com/group/sage-nt.
For more options, visit https://groups.google.com/d/optout.





--
You received this message because you are subscribed to the Google Groups 
"sage-nt" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send an email to [email protected].
Visit this group at https://groups.google.com/group/sage-nt.
For more options, visit https://groups.google.com/d/optout.

Reply via email to