id summary reporter owner description type status priority milestone component resolution keywords cc merged author reviewer upstream work_issues branch commit dependencies stopgaps
17601 Meta ticket: Asymptotic Expansions in SageMath behackl "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 [http://doc.sagemath.org/html/en/reference/asymptotic/sage/rings/asymptotic/asymptotic_ring.html the documentation files] for a more examples and a detailed description. A working prototype is include in !SageMath 6.10 and a version
containing all features can be found in branch `public/asy/trunk`.
-------
**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__`
* #19083: !AsymptoticRing: `exp`, `log`, cleanup, some improvements, documentation.
* contains #19094: Implement higher-order operations like `exp` and `log` for asymptotic expansions
* #19400: move documentation to sage.asymptotic
* Additional dependencies
* #19017: Easy access to the `O`-constructor in `big_oh.py`.
* #19110: QQ(0)^-1^ raises SIGFPE (which is caught)
* We have a working prototype (made of the tickets above).
* Arithmetic, categories and coercion (bugs and improvements)
* #19399: let category of growth group be determined by input
* #19316: compute asymptotic expansion to some rational directly
* #19411: hidden but caught infinite loop in action of cartesian products of growth groups
* #19412: log of an asymptotic expansion ignores coefficient ring
* #19420: make log of growth elements to the base of some powers of elements possible
* #19423: !AsymptoticExpansion: combine shared code of invert, log, exp
* #19577: performance improvement of mutable poset used for univariate asymptotic expansions
* #20000: sqrt of !AsymptoticExpansion
* #20043: multiplication with zero fails
* #20044: calculate asymptotic expansions to some asymptotic expansions exponents directly
* #21665: `AsymptoticRing.substitute` fails with exponents in QQbar
* Conversion (bugs and improvements)
* #19421: let asymptotic terms accept multivariate polynomials
* #19426: !AsymptoticRing: convert Orders of symbolic ring
* #19425: Order in symbolic ring: error calling operator
* #19429: extend conversion from SR to growth groups: allow inverses
* #19431: convert asymptotic expansion to the symbolic ring
* #19436: fixup of #19431
* #19437: SR.symbol: correct parent in inherting classes of !SymbolicRing
* #19921: handle zero coefficients when converting asymptotic rings
* #19945: Asymptotic Ring: cannot construct (1/2)^n
* #19946: Asymptotic Ring: cannot construct 2^n^ when coefficient ring is SR
* #19961: mention rpow of asymptotic ring in module doc/examples more prominently
* #19965: parent of exponent getting too large in exponentiation in asymptotic ring
* #19947: conversion SR to asymptotic ring
* Other bugs and minor improvements
* #19300: Run benchmarks on `MutablePoset.remove` to decide between two algorithms.
* #19424: enable !TestSuite for !AsymptoticRing
* #19504: better implementation of `AsymptoticExpansion.__hash__`
* #19576: parentheses around coefficients of asymptotic expansions
* #19580: use `locals()` in growth group factory
* #19981: implementation of `is_exact` for asymptotic expansions
* #19987: LaTeX-representation of asymptotic expansions
* #19999: infinite recursion creating certain asymptotic expansion
* #20045: move wrongly imported series_precision in !AsymptoticRing
* #22140: remove ""import sage"" from sage.rings.asymptotic.*
* #22340: coefficient of an AsymptoticExpansion
* #22395: ordering of (O-)terms: absolute values, real parts, etc.
* Generators for asymptotic expansions
* #19306: common generators for asymptotic expansions
* #19259: subrings of the symbolic ring
* #19510: generator for binomial(kn, n)
* #19521: wrong inverse action when using `ConstructionFunctor.coercion_reversed`
* #19898: generator for expansion of harmonic number
* Singularity analysis
* #19532: generators related to singularity analysis
* #19969: enhancement of SA-generators: log-type singularities
* #19993: Arb: parse symbolic expressions
* #19944: singularity analysis
* #20020: singularity analysis (log-type) without renormalization
* #20040: singularity analysis method for log-type singularities
* #20049: singularity in formula in docstring of !SingularityAnalysis-generator
* #20056: rename `AsymptoticRing.singularity_analysis` to `coefficients_of_generating_function`
* #20051: speed up singularity analysis (log-type) without renormalization
* #20052: allow symbolic expressions
* #20053: allow singular expansions as input
* #20054: intelligent choice of precision
* #20055: non-integral exponents beta also outside of generators
* #21659: `coefficients_of_generating_function`: hardcoded exponents in `QQ`
* #22360: raise proper OZero-exception (instead of AttributeError)
* More features
* #19305: substitution of asymptotic expansions
* #19528: `map_coefficients` for asymptotic expansions
* #19931: exact_part for asymptotic expansions
* #19540: factorial
* #19957: list plot comparing values
* Further plans
* for growth groups
* implement dependencies like |k| <= n^1/2^ for different growth group variables.
* #20050: growth groups with asymptotic at a non-infinity point
* !MultivariatePuiseuxSeriesRing
* other
* Deal with comparison for asymptotic expansions.
* Check and improve the performance of computations in the !AsymptoticRing.
* #20065: Asymptotic Expansions: adaptive precision
* Implementation of more types of asymptotic terms (little-oh terms, omega-terms, variations of big-Oh terms ...)
* Other related tickets:
* #10519: analytic combinatorics: new code for computing asymptotics for multivariate generating functions
* #19989: asymptotics for multivariate generating functions: zero division error on last coordinate
* #18092: evaluating symbolic expressions
* #18222: provide <=, <, >=, > for poset elements by the category (depends on #10130)
* #19088: multi-line doctests fail when using angle notation (preparser)
* #19269: add category Posets to ZZ and QQ
" enhancement new major sage-7.4 asymptotic expansions asymptotics, gsoc15 dkrenn cheuberg ncohen vdelecroix malb mmezzarobba rws kalvotom Benjamin Hackl, Daniel Krenn, Clemens Heuberger N/A public/asy/trunk db96be9b3863653c747fcbc010c842676ed3e580 #17600, #17693, #17715, #17716, #18182, #18222, #18223, #18586, #18587, #18930, #19017, #19028, #19047, #19048, #19068, #19073, #19079, #19083, #19088, #19094, #19110, #19259, #19269, #19300, #19305, #19306, #19316, #19319, #19399, #19400, #19411, #19412, #19420, #19421, #19423, #19424, #19425, #19426, #19429, #19431, #19436, #19437, #19504, #19510, #19521, #19528, #19532, #19540, #19576, #19577, #19580, #19898, #19921, #19931, #19944, #19945, #19946, #19957, #19961, #19965, #19969, #19981, #19987, #19999, #20000, #20020, #20040, #20043, #20044, #20045, #20049, #20050, #20051, #20052, #20053, #20054, #20055, #20056, #20065, #21659, #21665, #22140, #22340, #22360, #22395