#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.