#17601: Meta ticket: Asymptotic Expansions in SageMath
-------------------------------------+-------------------------------------
Reporter: behackl | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: sage-6.9
Component: asymptotic | Resolution:
expansions | Merged in:
Keywords: asymptotics, | Reviewers:
gsoc15 | Work issues:
Authors: Benjamin Hackl, | Commit:
Daniel Krenn | c4cd7ed152db8651e0af80951dfe45ed598e4399
Report Upstream: N/A | Stopgaps:
Branch: |
u/dkrenn/asy/prototype |
Dependencies: #17600, #17693, |
#17715, #17716, #18182, #18222, |
#18223, #18586, #18587, #18930, |
#19017, #19028, #19047, #19048, |
#19068, #19073, #19079, #19083, |
#19094, #19110, #19259, #19269, |
#19300, #19305, #19306, #19316, |
#19319 |
-------------------------------------+-------------------------------------
Changes (by dkrenn):
* dependencies:
#17600, #17693, #17715, #17716, #18182, #18222, #18223, #18586,
#18587, #18930, #19017, #19028, #19047, #19048, #19068, #19073,
#19079, #19083, #19094, #19110, #19259, #19269, #19300, #19305,
#19306, #19316
=>
#17600, #17693, #17715, #17716, #18182, #18222, #18223, #18586,
#18587, #18930, #19017, #19028, #19047, #19048, #19068, #19073,
#19079, #19083, #19094, #19110, #19259, #19269, #19300, #19305,
#19306, #19316, #19319
Old description:
> We intend to implement asymptotic expansions in !SageMath. We would like
> to do computations with simple expansions such as
>
> n^2^ + n^3/2^ + O(n^1/2^),
>
> but also with expansions such as
>
> 2^n^ * n + O(n*log(n))
>
> or even multivariate expansions such as
>
> 3*k/n + O(k^2^ / n^2^) with |k| <= n^(1/2)^.
>
> Of course, O(n) - O(n) = O(n) must hold and we want to perform various
> arithmetic operations with these asymptotic expansions. Eventually,
> specified O-constants shall also be supported.
>
> -------
>
> See #17716 and #19083 for more examples and the documentation files there
> for a more detailed description. A working prototype can be found in
> branch `u/dkrenn/asy/prototype`.
> -------
>
> **Roadmap**:
>
> * Implementing a minimal working example
> * #17600 (!AsymptoticGrowthElement): elements which handle the
> asymptotic growth. Such an element holds, e.g. n^2^ or k/n or n*log(n).
> This can compare, multiply etc., but has **no** coefficient; the order of
> magnitude is managed here. Concretely for this ticket:
> !MonomialGrowthElement, implementation for powers.
> * #18930: Factory for user-friendly generation of growth groups
> * #17715 (!AsymptoticTerm): a summand for asymptotic expansions. They
> contain the growth and additional information on the type of the summand.
> For starters, there will be big-Oh terms (e.g. `O(n)` and exact terms
> (e.g. `3*n^2`).
> * #17693 (!MutablePoset): data structure for storing asymptotic terms
> within an asymptotic expansions.
> * #17716 (!AsymptoticRing and !AsymptoticExpansion): sum of
> asymptotic terms.
>
> * Extending the functionality of growth groups
> * #18587: cartesian products for growth groups (allowing the
> construction of more complicated univariate as well as multivariate
> asymptotic expansions)
> * #18223: cartesian products with orders
> * #18586: passing on parameters and extra_category for cartesian
> products
> * #19028: More growth group implementations: exponential growth
> groups.
>
> * Extending the functionality of the !AsymptoticRing and
> !AsymptoticExpansion
> * #19048: `AsymptoticRing.an_element()`
> * #19047: `QQ.some_elements()`
> * #19068: Implement Division for asymptotic expansions.
> * #19073: categorial constructions, pushout and coercions (extended)
> for asymptotic ring and growth groups
> * #18182: pushout construction and finding common parents
> for/including cartesian products
> * #19079: !ConstructionFunctor: remove `__str__`
> * #19094: Implement higher-order operations like `exp` and `log` for
> asymptotic expansions.
> * #19083: !AsymptoticRing: cleanup, some improvements, documentation.
>
> * Further plans
> * for growth groups
> * implement dependencies like |k| <= n^1/2^ for different growth
> group variables.
> * growth groups with asymptotic at a non-infinity point
> * other
> * Deal with comparison for asymptotic expansions.
> * Check and improve the performance of computations in the
> !AsymptoticRing.
> * Implementation of more types of asymptotic terms (little-oh
> terms, omega-terms, variations of big-Oh terms ...)
> * #19300: Run benchmarks on `MutablePoset.remove` to decide
> between two algorithms.
> * #19305: substitution of asymptotic expansions
> * #19306: common generators for asymptotic expansions
> * #19259: subrings of the symbolic ring
> * #19316 compute asymptotic expansion to some rational directly
>
> * Additional dependencies
> * #19017: Easy access to the `O`-constructor in `big_oh.py`.
> * #19110: QQ(0)^-1^ raises SIGFPE (which is caught)
>
> * Other related Tickets:
> * #18222: provide <=, <, >=, > for poset elements by the category
> (depends on #10130)
> * #19269: add category Posets to ZZ and QQ
New description:
We intend to implement asymptotic expansions in !SageMath. We would like
to do computations with simple expansions such as
n^2^ + n^3/2^ + O(n^1/2^),
but also with expansions such as
2^n^ * n + O(n*log(n))
or even multivariate expansions such as
3*k/n + O(k^2^ / n^2^) with |k| <= n^(1/2)^.
Of course, O(n) - O(n) = O(n) must hold and we want to perform various
arithmetic operations with these asymptotic expansions. Eventually,
specified O-constants shall also be supported.
-------
See #17716 and #19083 for more examples and the documentation files there
for a more detailed description. A working prototype can be found in
branch `u/dkrenn/asy/prototype`.
-------
**Roadmap**:
* Implementing a minimal working example
* #17600 (!AsymptoticGrowthElement): elements which handle the
asymptotic growth. Such an element holds, e.g. n^2^ or k/n or n*log(n).
This can compare, multiply etc., but has **no** coefficient; the order of
magnitude is managed here. Concretely for this ticket:
!MonomialGrowthElement, implementation for powers.
* #18930: Factory for user-friendly generation of growth groups
* #17715 (!AsymptoticTerm): a summand for asymptotic expansions. They
contain the growth and additional information on the type of the summand.
For starters, there will be big-Oh terms (e.g. `O(n)` and exact terms
(e.g. `3*n^2`).
* #17693 (!MutablePoset): data structure for storing asymptotic terms
within an asymptotic expansions.
* #17716 (!AsymptoticRing and !AsymptoticExpansion): sum of asymptotic
terms.
* Extending the functionality of growth groups
* #18587: cartesian products for growth groups (allowing the
construction of more complicated univariate as well as multivariate
asymptotic expansions)
* #18223: cartesian products with orders
* #18586: passing on parameters and extra_category for cartesian
products
* #19028: More growth group implementations: exponential growth
groups.
* Extending the functionality of the !AsymptoticRing and
!AsymptoticExpansion
* #19048: `AsymptoticRing.an_element()`
* #19047: `QQ.some_elements()`
* #19319: iterator over pairs on diagonals a la Cantor pairing
* #19068: Implement Division for asymptotic expansions.
* #19073: categorial constructions, pushout and coercions (extended)
for asymptotic ring and growth groups
* #18182: pushout construction and finding common parents
for/including cartesian products
* #19079: !ConstructionFunctor: remove `__str__`
* #19094: Implement higher-order operations like `exp` and `log` for
asymptotic expansions.
* #19083: !AsymptoticRing: cleanup, some improvements, documentation.
* Further plans
* for growth groups
* implement dependencies like |k| <= n^1/2^ for different growth
group variables.
* growth groups with asymptotic at a non-infinity point
* other
* Deal with comparison for asymptotic expansions.
* Check and improve the performance of computations in the
!AsymptoticRing.
* Implementation of more types of asymptotic terms (little-oh
terms, omega-terms, variations of big-Oh terms ...)
* #19300: Run benchmarks on `MutablePoset.remove` to decide
between two algorithms.
* #19305: substitution of asymptotic expansions
* #19306: common generators for asymptotic expansions
* #19259: subrings of the symbolic ring
* #19316 compute asymptotic expansion to some rational directly
* Additional dependencies
* #19017: Easy access to the `O`-constructor in `big_oh.py`.
* #19110: QQ(0)^-1^ raises SIGFPE (which is caught)
* Other related Tickets:
* #18222: provide <=, <, >=, > for poset elements by the category
(depends on #10130)
* #19269: add category Posets to ZZ and QQ
--
Comment:
Last 10 new commits:
||[http://git.sagemath.org/sage.git/commit/?id=e8460b9599cdcee722dbd6aea7d4382bb83d55a4
e8460b9]||{{{improve docstring}}}||
||[http://git.sagemath.org/sage.git/commit/?id=9e41be5b7ffd3ffa34991c3f686c0a618fef42ca
9e41be5]||{{{doctest with infinite iterator inputs}}}||
||[http://git.sagemath.org/sage.git/commit/?id=97cb59c8ef71cd3a9e8df6086a2ff377baf3392f
97cb59c]||{{{add seealso blocks}}}||
||[http://git.sagemath.org/sage.git/commit/?id=17229c620b4aff47161b725de2ebb4f890cfc2af
17229c6]||{{{extend AUTHROS}}}||
||[http://git.sagemath.org/sage.git/commit/?id=e33703b4b9d0a3f06b71804f4e927d6b2881b000
e33703b]||{{{Merge branch 'u/dkrenn/product_cantor_pairing' of
trac.sagemath.org:sage into t/19048/asy/an_element}}}||
||[http://git.sagemath.org/sage.git/commit/?id=a529d4cc60edc3901a38b1cc6e7547f35f2519ab
a529d4c]||{{{Merge branch 'u/dkrenn/asy/an_element' of
trac.sagemath.org:sage into t/19094/asy/ring-exp-log}}}||
||[http://git.sagemath.org/sage.git/commit/?id=ba99790d116341acfd9a691ac0a2f26f705aa988
ba99790]||{{{use new product_cantor_pairing and delete old
product_diagonal}}}||
||[http://git.sagemath.org/sage.git/commit/?id=4a9d3d22c72b62933e3008243501cdb30d3627dd
4a9d3d2]||{{{Merge branch 'u/dkrenn/asy/an_element' of
trac.sagemath.org:sage into t/19094/asy/ring-exp-log}}}||
||[http://git.sagemath.org/sage.git/commit/?id=8204cfa2718fe9568f24b3e44ed0b091b8d70069
8204cfa]||{{{remove old product_diagonal (superseded by #19319)}}}||
||[http://git.sagemath.org/sage.git/commit/?id=c4cd7ed152db8651e0af80951dfe45ed598e4399
c4cd7ed]||{{{Merge branch 't/19094/asy/ring-exp-log' into
t/19083/asy/prototype}}}||
--
Ticket URL: <http://trac.sagemath.org/ticket/17601#comment:55>
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.