Opened 3 years ago

Closed 3 years ago

#17716 closed enhancement (fixed)

AsymptoticRing and AsymptoticExpression

Reported by: behackl Owned by:
Priority: major Milestone: sage-6.9
Component: asymptotic expansions Keywords: asymptotics, gsoc15
Cc: dkrenn, cheuberg, ncohen, vdelecroix, tmonteil Merged in:
Authors: Benjamin Hackl, Daniel Krenn Reviewers: Daniel Krenn, Clemens Heuberger
Report Upstream: N/A Work issues:
Branch: e8e2501 (Commits) Commit: e8e2501fd4b08280cbca5aca749191a743c0ff01
Dependencies: #17693, #17715, #19017 Stopgaps:

Description (last modified by behackl)

We want to implement asymptotic expressions like (5 * n * 2n - 2 * n2/3 + O(n * log(n))) based on our implementation of asymptotic terms (i.e. objects which contain a growth and possibly some additional information; see ticket #17715) and the MutablePoset data structure (see ticket #17693).

Basically, an asymptotic expression represents the sum of asymptotic terms. The terms are stored within an MutablePoset, which is helpful for the management of the terms, as absorption of terms (and their predecessors w.r.t. growth) can be handled efficiently.

For example:

(n3 + n2 + n + 1) + (O(n2)) evaluates to (n3 + O(n2)), because the O term absorbs n2 and its predecessors, which is information that is stored in the MutablePoset.

Another more complex example would be:

(4 * n2 * t + 3 * n * t2 + O(n)) + (O(n2 * t3/2)) evaluates to (3 * n * t2 + O(n2 * t3/2)). Here, the MutablePoset behind the term (4 * n2 * t + 3 * n * t2 + O(n)) incorporates the relations n <= 4 * n^2 * t and n <= 3 * n * t^2, whereas the expression (O(n2 * t3/2)) only contains the term n2 * t3/2, and thus the corresponding MutablePoset contains no relations. Adding these two terms translates into merging the two underlying posets. By inserting the term O(n2 * t3/2) into the first poset, new relations 4 * n^2 * t <= n^2 * t^(3/2) and n <= n^2 * t^(3/2) are discovered. As O terms absorb terms of weaker or equal growth, the term 4 * n2 * t and O(n) are removed from the poset. As noted above, the remaining elements form the asymptotic expression (3 * n * t2 + O(n2 * t3/2)).

Concretely, we plan to implement the elements AsymptoticExpression (with parent AsymptoticRing) whose objects act as described above.

Within this ticket, a minimal working prototype shall be implemented, such that univariate, polynomial expressions can be handeled.

See meta-ticket #17601 for the planned structure and a roadmap.

Change History (48)

comment:1 Changed 3 years ago by behackl

  • Type changed from PLEASE CHANGE to enhancement

comment:2 Changed 3 years ago by ncohen

  • Cc ncohen vdelecroix tmonteil added

comment:3 Changed 3 years ago by behackl

  • Branch set to u/behackl/asy/asymptoticExpression
  • Commit set to 8dc7df1fd1c8cee8ff4ac8f6eb8eb2fc4d1b3e3b
  • Dependencies set to #17600, #17693, #17715
  • Description modified (diff)
  • Keywords gsoc15 added

comment:4 Changed 3 years ago by git

  • Commit changed from 8dc7df1fd1c8cee8ff4ac8f6eb8eb2fc4d1b3e3b to f2d04482a41c65c597e939dbf6b0a8c3df7aa2ad

Branch pushed to git repo; I updated commit sha1. New commits:

15af0bdimplemented __pow__ for asymptotic expressions
f2d0448doctests for _simplify_

comment:5 Changed 3 years ago by git

  • Commit changed from f2d04482a41c65c597e939dbf6b0a8c3df7aa2ad to fb9e828ecf3e7444a983924275ba6aaee0c11d48

Branch pushed to git repo; I updated commit sha1. New commits:

3f687bbdocstring for AsymptoticRing added
b109537gen implemented
40cae5btypo fixed
fa16ab6docstring for asymptotic expression added
fb9e828coercion from rings that coerce into coefficient_ring

comment:6 Changed 3 years ago by git

  • Commit changed from fb9e828ecf3e7444a983924275ba6aaee0c11d48 to 9b24fa77d1e94fa61593d10b4c6a645430799c10

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

a5fd74dintroduction of short notation for growth groups + factory
6e9652bcomparison with mul_vararg
637d4cbheader modified
8404c32Merge branch 'asy/asymptoticTerm' into
8bf88cfdoctests fixed
d34a451asymptotic ring, classcall: short notation can be used to specify the
2c59df1doctests fixed ('monomial' --> gone)
8833c6aadapted documentation and header
371a53arepresentation: 1*x --> x; -1*x --> -x etc.
9b24fa7Merge branch 'asy/asymptoticTerm' into

comment:7 Changed 3 years ago by behackl

  • Dependencies changed from #17600, #17693, #17715 to #17600, #17693, #17715, #18930

comment:8 Changed 3 years ago by git

  • Commit changed from 9b24fa77d1e94fa61593d10b4c6a645430799c10 to 8b1d0213349d676a7722bdf25c545b0d100069c1

Branch pushed to git repo; I updated commit sha1. New commits:

8b1d021doctests fixed

comment:9 Changed 3 years ago by dkrenn

  • Branch changed from u/behackl/asy/asymptoticExpression to u/dkrenn/asy/asymptoticExpression

comment:10 Changed 3 years ago by dkrenn

  • Authors changed from Benjamin Hackl to Benjamin Hackl, Daniel Krenn
  • Commit changed from 8b1d0213349d676a7722bdf25c545b0d100069c1 to bb75902c876d7c8a0a834995044aa44e5a4634bb
  • Reviewers set to Daniel Krenn

Last 10 new commits:

8584f57write __len__
a1678edremove TODO-list of methods (list is now in separat branch)
1c6b196write methods for maximal/minimal elements
ec5c3b7Merge branch 'asy/poset' into asy/ring
f6bc337implement __nonzero__
001d921adapt O (previous merge and __nonzero__)
825bcbcremove reverse from _repr_ and reverse by default
0cfa751fix doctests (_repr_ reverse)
4a2f31aminor rewrite of docstring
bb75902_repr_: handle a minus correct

comment:11 Changed 3 years ago by git

  • Commit changed from bb75902c876d7c8a0a834995044aa44e5a4634bb to 12d88c95c4f0718ac59a0cf75171356d46eb8392

Branch pushed to git repo; I updated commit sha1. New commits:

19fd155allow merge to go over all elements
a526c77Merge branch 'asy/poset' into asy/ring
748444arewrite simplify to use poset's merge method
12d88c9restructure creation of empty data structures (give them their own method)

comment:12 Changed 3 years ago by behackl

  • Branch changed from u/dkrenn/asy/asymptoticExpression to u/behackl/asy/asymptoticExpression
  • Commit changed from 12d88c95c4f0718ac59a0cf75171356d46eb8392 to b5e76acb1104af129176af6d40eb035cb986466a

Last 10 new commits:

12d88c9restructure creation of empty data structures (give them their own method)
f141775typos in module description fixed
62d824fMerge branch 'asy/growthGroup' into asy/growthGroup-factory
116ab14Merge branch 'asy/growthGroup-factory' into asy/asymptoticTerm
164e39cexperimental warning: refer to #17601
7eecfe2improved representation strings
c35a63dMerge branch 'asy/asymptoticTerm' into asy/asymptoticExpression
618de1cexperimental warning for terms: refer to #17601
df6346ftypo fixed
b5e76acuse len(poset) instead of len(poset._shells_)

comment:13 Changed 3 years ago by git

  • Commit changed from b5e76acb1104af129176af6d40eb035cb986466a to 556a263b637708766158efab3ca4c7f013b07449

Branch pushed to git repo; I updated commit sha1. New commits:

ea67acecall x.O(**kwds) if possible
b018387code simplification
6b111ceadd keywords to all constructors
b4e2526improved docstring
3145afdimproved code formatting (PEP 8)
556a263merged branch 'asy/big_oh' into asy/asymptoticExpression and resolved a small conflict

comment:14 Changed 3 years ago by behackl

  • Dependencies changed from #17600, #17693, #17715, #18930 to #17600, #17693, #17715, #18930, #19017

comment:15 Changed 3 years ago by git

  • Commit changed from 556a263b637708766158efab3ca4c7f013b07449 to 8016a1dea945f23ff61a083519d56bc42cca7875

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

b766273Merge branch 'asy/asymptoticTerm' into asy/asymptoticExpression
d92d3ecparsing of log-operands fixed
63f4cfeMerge branch 'asy/asymptoticTerm' into asy/asymptoticExpression
25ce229added some line wraps
1aa0648fixed two doctests
eb32b4cbracket notation only works if the underlying growth group has a generator
3749fa1refactored handling of generators
ba16c0fMerge branch 'asy/growthGroup' into asy/growthGroup-factory
4616535Merge branch 'asy/growthGroup-factory' into asy/asymptoticTerm
8016a1dMerge branch 'asy/asymptoticTerm' into asy/asymptoticExpression

comment:16 Changed 3 years ago by git

  • Commit changed from 8016a1dea945f23ff61a083519d56bc42cca7875 to 914271a79482f8202326aef6b0ab7aa62c2df02f

Branch pushed to git repo; I updated commit sha1. New commits:

c6d8584error with the element constructor fixed, doctest added
3564d23Merge branch 'asy/growthGroup' into asy/growthGroup-factory
0b53b76Merge branch 'asy/growthGroup-factory' into asy/asymptoticTerm
914271aMerge branch 'asy/asymptoticTerm' into asy/asymptoticExpression

comment:17 Changed 3 years ago by dkrenn

  • Summary changed from AsymptoticExpression to AsymptoticRing and AsymptoticExpression

comment:18 Changed 3 years ago by dkrenn

  • Branch changed from u/behackl/asy/asymptoticExpression to u/dkrenn/asy/asymptoticExpression

comment:19 Changed 3 years ago by behackl

  • Branch changed from u/dkrenn/asy/asymptoticExpression to u/behackl/asy/asymptoticExpression
  • Commit changed from 914271a79482f8202326aef6b0ab7aa62c2df02f to f11877232543a2d08b45f2a1924793ad129b7576

Last 10 new commits:

8263e39include asymptotic ring in reference manual
c756025correct broken link
22fcbc4rewrite docstring of AsymptoticRing
acfb983rewrite docstring of AsymptoticExpression
fc61df6write module description and introductory examples
aa4c647Merge branch 'u/dkrenn/asy/asymptoticExpression' into asy/asymptoticExpression
5911564typo fixed and line break introduced
7aa3e60`QQ` --> `\mathbb{Q}`
3e2a7b3typo fixed
f118772some SEEALSO-blocks added

comment:20 Changed 3 years ago by dkrenn

  • Branch changed from u/behackl/asy/asymptoticExpression to u/dkrenn/asy/asymptoticExpression

comment:21 Changed 3 years ago by git

  • Commit changed from f11877232543a2d08b45f2a1924793ad129b7576 to 64563002a4d2579b7eb280c1807d108af51e3ea3

Branch pushed to git repo; I updated commit sha1. New commits:

6456300minor rewording in docstring

comment:22 Changed 3 years ago by behackl

  • Status changed from new to needs_review

comment:23 Changed 3 years ago by dkrenn

During the project #17601 (the last months in course of GSOC2015 as mentor) I did a very careful reviewing of all code. This includes the code of this ticket. Now this is clearly a positive_review from my side.

comment:24 Changed 3 years ago by behackl

  • Branch changed from u/dkrenn/asy/asymptoticExpression to u/behackl/asy/asymptoticExpression
  • Commit changed from 64563002a4d2579b7eb280c1807d108af51e3ea3 to c7afc80e1ff9218390aa501b8f1a94a517e0bab9

Last 10 new commits:

7774ff2fixed doctests
878ef2afixed documentation build
5fd9662Merge branch 'asy/growthGroup' into asy/growthGroup-factory
f20c42efixing doctests
38e73c8Merge branch 'asy/growthGroup-factory' into asy/asymptoticTerm
ae6a9bbfixed doctests
79be7d6documentation builds again
6d01815Merge branch 'asy/asymptoticTerm' into asy/asymptoticExpression
f6c4d80doctests fixed
c7afc80building documentation fixed

comment:25 Changed 3 years ago by git

  • Commit changed from c7afc80e1ff9218390aa501b8f1a94a517e0bab9 to 4e7b080f1e7da508c319d7b0c7a7ea40ccd97521

Branch pushed to git repo; I updated commit sha1. New commits:

9305ca5add . after seealso-lists
50d7166\mathbb{Q} --> \QQ
2f8146ddoctests: add growth_group= and coefficient_ring= to AsymptoticRing(...) generation
6456300minor rewording in docstring
4e7b080Merge branch 'u/dkrenn/asy/asymptoticExpression' into asy/asymptoticExpression and fixed some merge conflicts

comment:26 Changed 3 years ago by git

  • Commit changed from 4e7b080f1e7da508c319d7b0c7a7ea40ccd97521 to 83f74d397fab0ceb49865e3d8dade30a4d7aa758

Branch pushed to git repo; I updated commit sha1. New commits:

7b8c1a0fixed a conversion issue for terms with coefficient
83f74d3Merge branch 'asy/asymptoticTerm' into asy/asymptoticExpression

comment:27 Changed 3 years ago by dkrenn

  • Branch changed from u/behackl/asy/asymptoticExpression to u/dkrenn/asy/asymptoticExpression

comment:28 Changed 3 years ago by dkrenn

  • Commit changed from 83f74d397fab0ceb49865e3d8dade30a4d7aa758 to 2c1c39d91e323921dd02427799c1912fb02a2aa1

Merged 6.9.beta5


New commits:

1c81c12language oddities fixed
032d8b8Merge branch 'asy/growthGroup' into asy/growthGroup-factory
3a05be7Merge tag '6.9.beta5' into t/17600/asy/growthGroup
58f931dadd asymptotic_expansions index
9d6f2daMerge branch 't/17600/asy/growthGroup' into t/18930/asy/growthGroup-factory
6da5adeMerge branch 't/18930/asy/growthGroup-factory' into t/17715/asy/asymptoticTerm
2c1c39dMerge branch 't/17715/asy/asymptoticTerm' into t/17716/asy/asymptoticExpression

comment:29 Changed 3 years ago by dkrenn

  • Component changed from symbolics to asymptotic expansions

comment:30 Changed 3 years ago by behackl

  • Branch changed from u/dkrenn/asy/asymptoticExpression to u/behackl/asy/asymptoticExpression
  • Commit changed from 2c1c39d91e323921dd02427799c1912fb02a2aa1 to d1336d3a96ec370504172b3897f72783ca4c9be5

Merged positively reviewed version of #17715 into this branch.


Last 10 new commits:

67a73caimproved some doctests
fe906careintroduce _le_ for TermWithCoefficient
5cb54aeequality comparison for terms
14e3e63improve documentation: information on comparison
ce7e2a3Trac #17715: avoid the use of repr in doctest
7b29b28Trac #17715: do not include "the" in internal link texts
b22a24bTrac #17715: Fix ReSt error
abc6a16Merge branch 'u/cheuberg/asy/asymptoticTerm' of git://trac.sagemath.org/sage into asy/asymptoticTerm
aea0ae8Trac #17715: Minor language adjustments
d1336d3Merge branch 'asy/asymptoticTerm' into asy/asymptoticExpression

comment:31 Changed 3 years ago by git

  • Commit changed from d1336d3a96ec370504172b3897f72783ca4c9be5 to 5f54aecc2a188ccf2711946c655c271386ae32c6

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

33c4102mark doctests in .le as indirect
b31fac8rewrite a couple of one-line descriptions
17e921fremove sorted_set_by_tuple
7af4b6bremove reverse keyword from shells
a49a20dadd comment in code to make it clear what happens
89b8209change left/right to self/other
1d52f6cadd a note to the set operations methods
3b3b2fbobject --> SageObject
572a95dMerge branch 'asy/mutable-poset' into asy/asymptoticExpression
5f54aecexplicitly forbid coercion from MutablePoset into the AsymptoticRing

comment:32 Changed 3 years ago by cheuberg

  • Branch changed from u/behackl/asy/asymptoticExpression to u/cheuberg/asy/asymptoticExpression

comment:33 Changed 3 years ago by cheuberg

  • Commit changed from 5f54aecc2a188ccf2711946c655c271386ae32c6 to 4bb745f5d9f796c8485d23536cd456dde8a2201e
  • Milestone changed from sage-6.5 to sage-6.9
  • Reviewers changed from Daniel Krenn to Daniel Krenn, Clemens Heuberger
  • Status changed from needs_review to needs_work

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?
  2. AsymptoticExpression.__init__: all doctests are indirect; however seeing simplify in action as well as a poset might be more interesting.
  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.
  5. AsymptoticRing: "TEST": what is the purpose of this test? Isn't all that already tested?
  6. AsymptoticRing.__classcall__: the if clause if names is not None does not seem to be prepared to multiple generators.
  7. AsymptoticRing.__classcall__: deal with parameter category
  8. AsymptoticRing.__init__: include doctests for error conditions.
  9. AsymptoticRing._element_constructor_: clarify that data=0 is required if summands is not None
  10. AsymptoticRing._element_constructor_: doctests for use of summands, for error conditions
  11. AsymptoticRing._coerce_map_from_: why is the test if R == MutablePoset required?

Last 10 new commits:

b92eb2aTrac #17716: minor language issues
61017c7Trac #17716: use next function instead of next method (Python3 compatible)
0dc81e8Trac #17716: language
6f0d60fTrac #17716: simplified doctest
8b29f92Trac #17716: additional doctests
451b5e8Trac #17716: PEP8 compliance
7381430Trac #17716: "not implemented" instead of "not tested"
9bf196aTrac #17716: fix errors
a188101Trac #17716: fix TeX errors in docstrings
4bb745fTrac #17716: Heading "Classes and Methods"

comment:34 follow-up: Changed 3 years ago by cheuberg

One more comment:

  1. In my opinion, with this ticket, the documentation should no longer be hidden, because the asymptotic ring in this version does something which was previously impossible in SageMath (fractional exponents).

comment:35 Changed 3 years ago by dkrenn

Code breaks on 6.9.rc0 (change of imports in sage/rings/all.py). Merge 6.9.rc0 and adapt.

comment:36 Changed 3 years ago by behackl

  • Branch changed from u/cheuberg/asy/asymptoticExpression to u/behackl/asy/asymptoticExpression
  • Commit changed from 4bb745f5d9f796c8485d23536cd456dde8a2201e to f5f7dcf8bb0c20bd3fc6212015b82e9cfd8691e1

Merged 6.9.rc0 and fixed imports.


New commits:

3215e3eMerge tag '6.9.rc0' into asy/asymptoticExpression
f5f7dcffixed imports

comment:37 Changed 3 years ago by git

  • Commit changed from f5f7dcf8bb0c20bd3fc6212015b82e9cfd8691e1 to abb08ff241086ac0faee88969a4d6f190244de7f

Branch pushed to git repo; I updated commit sha1. New commits:

538e1e4doctest for simplify-keyword
e98964bremove superfluous doctest
5cf2a31doctests for AsymptoticRing.__init__
dc00f95improve documentation of _element_constructor_
abb08ffimprove _element_constructor_

comment:38 Changed 3 years ago by behackl

  • Status changed from needs_work to needs_review

Hello Clemens!

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

Replying to 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.

  1. 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_.

  1. AsymptoticExpression.__pow__: How difficult would it be to allow the computation of (y^2)^(3/2) ?
  2. 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.

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

Cannot recall the intention behind this test. Deleted.

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

  1. AsymptoticRing.__classcall__: deal with parameter category

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

  1. AsymptoticRing.__init__: include doctests for error conditions.

Done.

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

  1. AsymptoticRing._element_constructor_: doctests for use of summands, for error conditions

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

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

comment:39 Changed 3 years ago by cheuberg

  • Branch changed from u/behackl/asy/asymptoticExpression to u/cheuberg/asy/asymptoticExpression

comment:40 Changed 3 years ago by git

  • Commit changed from abb08ff241086ac0faee88969a4d6f190244de7f to 055e35bf7632c403be96371ce4f56f128534a307

Branch pushed to git repo; I updated commit sha1. New commits:

78b9e96Trac #17716: additional doctest
055e35bTrac #17716: Fix ReSt error

comment:41 in reply to: ↑ 34 ; follow-up: Changed 3 years ago by cheuberg

Replying to cheuberg:

One more comment:

  1. In my opinion, with this ticket, the documentation should no longer be hidden, because the asymptotic ring in this version does something which was previously impossible in SageMath (fractional exponents).

any thoughts on that?

Apart from that, I reviewed your changes and added two minor reviewer commits.

Last edited 3 years ago by cheuberg (previous) (diff)

comment:42 Changed 3 years ago by dkrenn

  • Branch changed from u/cheuberg/asy/asymptoticExpression to u/dkrenn/asy/asymptoticExpression

comment:43 in reply to: ↑ 41 Changed 3 years ago by dkrenn

  • Commit changed from 055e35bf7632c403be96371ce4f56f128534a307 to e8e2501fd4b08280cbca5aca749191a743c0ff01

Replying to cheuberg:

Replying to cheuberg:

One more comment:

  1. In my opinion, with this ticket, the documentation should no longer be hidden, because the asymptotic ring in this version does something which was previously impossible in SageMath (fractional exponents).

any thoughts on that?

Included.

Apart from that, I reviewed your changes and added two minor reviewer commits.

...ok.


New commits:

e8e2501make entry in reference/index

comment:44 Changed 3 years ago by dkrenn

  • Status changed from needs_review to positive_review

comment:45 follow-up: Changed 3 years ago by cheuberg

.. toctree::
   :hidden:

   asymptotic_expansions_index

could now be removed from src/doc/en/reference/rings/index.rst .

But this can wait until one of the follow-up tickets.

And in src/doc/output/html/en/reference/rings/asymptotic_expansions_index.html, the very first line could be a pointer towards the introductory material in the asymptotic ring instead of a logical listing starting with the growth group.

comment:46 in reply to: ↑ 45 Changed 3 years ago by dkrenn

Replying to cheuberg:

.. toctree::
   :hidden:

   asymptotic_expansions_index

could now be removed from src/doc/en/reference/rings/index.rst .

But this can wait until one of the follow-up tickets.

Ok (probably #19083).

And in src/doc/output/html/en/reference/rings/asymptotic_expansions_index.html, the very first line could be a pointer towards the introductory material in the asymptotic ring instead of a logical listing starting with the growth group.

This is done in #19083.

comment:47 Changed 3 years ago by dkrenn

  • Dependencies changed from #17600, #17693, #17715, #18930, #19017 to #17693, #17715, #19017

comment:48 Changed 3 years ago by vbraun

  • Branch changed from u/dkrenn/asy/asymptoticExpression to e8e2501fd4b08280cbca5aca749191a743c0ff01
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.