#1956: implement multivariate power series arithmetic
------------------------------------------------------------------------------+
   Reporter:  was                                                             | 
      Owner:  malb                     
       Type:  enhancement                                                     | 
     Status:  needs_work               
   Priority:  major                                                           | 
  Milestone:  sage-4.6                 
  Component:  commutative algebra                                             | 
   Keywords:  multivariate power series
     Author:  Niles Johnson                                                   | 
   Upstream:  N/A                      
   Reviewer:  Martin Albrecht, Simon King                                     | 
     Merged:                           
Work_issues:  remove `MPowerSeriesRing`, implement through `PowerSeriesRing`  | 
 
------------------------------------------------------------------------------+
Changes (by niles):

  * status:  needs_review => needs_work
  * work_issues:  => remove `MPowerSeriesRing`, implement through
                  `PowerSeriesRing`


Comment:

 For what it's worth, here is the specific issue I'm stuck on:
 `PowerSeries` allows the argument `default_prec` to be specified using
 either the first or second position:

 {{{
 sage: T = PowerSeriesRing(QQ,'t',3)
 sage: T.default_prec()
 3

 sage: T = PowerSeriesRing(QQ,3,names='t')
 sage: T.default_prec()
 3
 sage: T.variable_name()
 't'
 }}}

 So what's the best way to preserve this functionality, but also allow
 creation of multivariate power series using the same (or similar) syntax
 as `PolynomialRing` uses? e.g.

 {{{
 sage: R = PolynomialRing(QQ,3,'r'); R
 Multivariate Polynomial Ring in r0, r1, r2 over Rational Field
 sage: R = PolynomialRing(QQ,'r',3); R
 Multivariate Polynomial Ring in r0, r1, r2 over Rational Field
 }}}

 Note, on the other hand, that the following give errors:
 {{{
 sage: T = PowerSeriesRing(QQ,3,'t')
 Traceback (most recent call last):
 ...
 ValueError: first letter of variable name must be a letter

 sage: T = PowerSeriesRing(QQ,3,name='t')
 Traceback (most recent call last):
 ...
 TypeError: PowerSeriesRing() got multiple values for keyword argument
 'name'
 }}}

 To me, it seems that the current behavior (assuming integer arguments are
 meant to be `default_prec`) should be deprecated, and the allowed syntax
 of `PowerSeriesRing` should mirror that of `PolynomialRing`.


 Oh, I just realized what I should try:  Make `PowerSeriesRing(QQ,3,'t')`
 and `PowerSeriesRing(QQ,'t,u,v')` create multivariate power series rings,
 and raise deprecation warnings in the other cases (as long as the rest of
 sage doesn't depend too heavily on this behavior); then `MPowerSeriesRing`
 never has to exist, `PowerSeriesRing` will sort of work as expected, and
 eventually it can be brought properly in line with `PolynomialRing`.  How
 does that sound to other people here?

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/1956#comment:38>
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