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

  * status:  needs_review => needs_work


Comment:

 > 1. Sage passes all doctests with this patch (positive review; buildbot)

 I think the buildbot gets confused by the "Apply" instruction in the
 ticket's description. Hence, it didn't run the big patch yet.

 > 2. All code is documented and doctested thoroughly; documentation builds
 without
 > error or warning (needs review)

 '''needs work'''

 {{{
 sage -coverage devel/sage/sage/rings/multi_power_series_ring.py
 ----------------------------------------------------------------------
 devel/sage/sage/rings/multi_power_series_ring.py
 SCORE devel/sage/sage/rings/multi_power_series_ring.py: 96% (30 of 31)

 Missing documentation:
          * unpickle_multi_power_series_ring_v0(base_ring, num_gens, names,
 order, default_prec, sparse):
 }}}

 These just need {{{#indirect doctest}}} added:

 {{{
 sage -coverage devel/sage/sage/rings/multi_power_series_ring_element.py
 ----------------------------------------------------------------------
 devel/sage/sage/rings/multi_power_series_ring_element.py
 SCORE devel/sage/sage/rings/multi_power_series_ring_element.py: 100% (52
 of 52)

 Possibly wrong (function name doesn't occur in doctests):
          * _subs_formal(self,*x,**kwds):
          * _add_(left, right):
          * _sub_(left, right):
          * _mul_(left, right):
          * _lmul_(self, c):
          * _div_(self, denom_r):

 ----------------------------------------------------------------------
 }}}

 But the docs build without warnings etc.

 > 3. The underlying concept of the implementation (a wrapper for certain
 univariate
 > power series over multivariate polynomials) is sound (positive review;
 Mario
 > Pernici)

 > 4. multi_power_series_ring.py: the code accurately does what it claims
 to do (needs_review)

 Shouldn't {{{def _element_constructor_(self,f)}}} use the default
 precision of the ring?

 > 5. multi_power_series_ring_element.py: the code accurately does what it
 claims to
 > do (needs review)

 > 6. Integration with the rest of sage: construction and use of
 PowerSeriesRings
 > works correctly, and parallels behavior of polynomial rings (needs
 review)

 '''needs work'''

 The {{{default_prec}}} parameter does not seem to work as expected (or is
 my expectation wrong?)

 {{{
 #!python
 sage: P.<x,y> = PowerSeriesRing(GF(127),default_prec=20)
 sage: x.prec()
 +Infinity
 }}}

 > 7. Performance: the multivariate power series arithmetic is fast enough
 to be
 > included in Sage (positive review; Mario Pernici)

 > 8. Coding: the code is free from obvious inefficiencies in error
 handling, memory
 > management, etc. (needs review)

 If the performance is good (7), then I think we can just assume it's okay.
 We can always come back and fix stuff later which is too slow.

 I have to say that I don't like the excessive use of double underscore
 attributes. It makes it harder to inherit from it or reach into the
 internals (just as you have to write
 {{{_PowerSeriesRing_generic__poly_ring}}}) I'd just use a single
 underscore. I'll leave it up to you (i.e., not make my review dependent on
 it) whether you insist on keeping them.

 > 9. The items on this list constitute a complete review (needs review)

 Fine by me.

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