#1956: implement multivariate truncated power series arithmetic
-------------------------------------------+--------------------------------
   Reporter:  was                          |       Owner:  pernici              
    
       Type:  enhancement                  |      Status:  needs_review         
    
   Priority:  major                        |   Milestone:  sage-4.6.2           
    
  Component:  commutative algebra          |    Keywords:  multivariate power 
series
     Author:  Niles Johnson                |    Upstream:  N/A                  
    
   Reviewer:  Martin Albrecht, Simon King  |      Merged:                       
    
Work_issues:                               |  
-------------------------------------------+--------------------------------

Comment(by pernici):

 niles wrote:
 > It sounds like you're willing to give that item a positive review. Are
 you also willing to say that "The underlying concept is sound"?

 I think it is sound to use a background univariate series
 to implement total degree precision.

 Concerning the 6th item (integration with the rest of sage)
 we should discuss what other approaches are available in Sage to deal with
 multivariate series.

 Another approach to multivariate series is using series of series;
 this can be done with Sage's univariate power series or `gp`.

 It is a bit cumbersome to convert a polynomial into a series of series
 with
 Sage's univariate power series

 {{{
 sage: R.<x1> = QQ[[]]
 sage: S.<x0> = R[[]]
 sage: p = (1 + x0 + x1)^3
 sage: a = p.list()
 sage: q = sum((a[i] + O(x1^3))*x0^i for i in range(len(a))) + O(x0^3)
 sage: q^-5
 1 - 15*x1 + 120*x1^2 + O(x1^3) + (-15 + 240*x1 - 2040*x1^2 + O(x1^3))*x0 +
 (120 - 2040*x1 + 18360*x1^2 + O(x1^3))*x0^2 + O(x0^3)
 sage: (q-1)^2
 9*x1^2 + 18*x1^3 + O(x1^4) + (18*x1 + 54*x1^2 + O(x1^3))*x0 + (9 + 54*x1 +
 90*x1^2 + O(x1^3))*x0^2 + O(x0^3)
 }}}

 Using `gp` the notation is simpler
 {{{
 sage: q = gp('(1+x0+x1)^3 + O(x0^3) + O(x1^3)')
 }}}
 giving the same output for `q^-5` and `(q-1)^2` .

 For long computations `gp` is much faster, especially with more than two
 variables.

 Should one integrate the multi-series multivariate series approach
 with `PowerSeriesRing` ? It could be something like
 {{{
 sage: R = PowerSeriesRing(QQ, 2, 'x', "ms")
 sage: q = (1 + x0 + x1)^3 + O(x0^3,x1^3)
 sage: q
 1 + 3*x1 + 3*x1^2 + O(x1^3) + (3 + 6*x1 + 3*x1^2 + O(x1^3))*x0 + (3 + 3*x1
 + O(x1^3))*x0^2 + O(x0^3)
 }}}

 One could implement series of series with Sage's univariate power series,
 or better using PARI.

 Clearly implementing this does not belong to this ticket.
 The only thing to be decided in this ticket is if it is OK to keep the
 total degree precision as the default option in `PowerSeriesRing`.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/1956#comment:88>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to