#17716: AsymptoticRing and AsymptoticExpression
-------------------------------------+-------------------------------------
       Reporter:  behackl            |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.9
      Component:  asymptotic         |   Resolution:
  expansions                         |    Merged in:
       Keywords:  asymptotics,       |    Reviewers:  Daniel Krenn, Clemens
  gsoc15                             |  Heuberger
        Authors:  Benjamin Hackl,    |  Work issues:
  Daniel Krenn                       |       Commit:
Report Upstream:  N/A                |  abb08ff241086ac0faee88969a4d6f190244de7f
         Branch:                     |     Stopgaps:
  u/behackl/asy/asymptoticExpression |
   Dependencies:  #17600, #17693,    |
  #17715, #18930, #19017             |
-------------------------------------+-------------------------------------
Changes (by behackl):

 * status:  needs_work => needs_review


Comment:

 Hello Clemens!

 I cross-reviewed your changes (they look fine), and here are some answers
 to your comments:

 Replying to [comment:33 cheuberg]:
 > I have read the code and the documentation. I have pushed a few reviewer
 commits (please cross-review). Apart from that, I have a few
 comments/questions:
 > 1. Introductory examples, `A.an_element()`: why is this not tested?

 Because this already gives the result of our implementation of
 `an_element` from #19048. It is tested there.

 > 2. `AsymptoticExpression.__init__`: all doctests are indirect; however
 seeing `simplify` in action as well as a poset might be more interesting.

 I copied and adapted a doctest from `_simplify_`.

 > 3. `AsymptoticExpression.__pow__`: How difficult would it be to allow
 the computation of `(y^2)^(3/2)` ?
 > 4. `AsymptoticExpression.__pow__`: move powers of asymptotic terms to
 the respective classes instead of the hack here.

 Both 3. and 4. are fixed in #19083: especially the `__pow__`-methods were
 heavily changed and split.

 > 5. `AsymptoticRing`: "TEST": what is the purpose of this test? Isn't all
 that already tested?

 Cannot recall the intention behind this test. Deleted.

 > 6. `AsymptoticRing.__classcall__`: the if clause `if names is not None`
 does not seem to be prepared to multiple generators.

 This is because this world works entirely without cartesian products. Our
 efforts on the "cartesian product" front get merged with the "asymptotic
 ring" font in #19073.

 > 7. `AsymptoticRing.__classcall__`: deal with parameter `category`

 The entire `__classcall__` has been rewritten in #19083, categories are
 handled correctly there.

 > 8. `AsymptoticRing.__init__`: include doctests for error conditions.

 Done.

 > 9. `AsymptoticRing._element_constructor_`: clarify that `data=0` is
 required if `summands is not None`

 Added a similar note as for the element constructor of the growth group.

 > 10. `AsymptoticRing._element_constructor_`: doctests for use of
 `summands`, for error conditions

 Done. (And fixed the typo in 'ambiguous' `;-)`)

 > 11. `AsymptoticRing._coerce_map_from_`: why is the test `if R ==
 MutablePoset` required?

 This is a premature fix for a problem arising in #19083: when passing a
 `MutablePoset` to the ring such that the element constructor builds an
 expansion, `coerce_map_from` is called with the class of the poset (as the
 poset has no parent). Without this, a lot of bad stuff happens.

--
Ticket URL: <http://trac.sagemath.org/ticket/17716#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 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 http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to