Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

asymptotic expansions: singularity analysis #19944

Closed
behackl opened this issue Jan 23, 2016 · 55 comments
Closed

asymptotic expansions: singularity analysis #19944

behackl opened this issue Jan 23, 2016 · 55 comments

Comments

@behackl
Copy link
Member

behackl commented Jan 23, 2016

This ticket aims to implement singularity analysis as a callable method of asymptotic rings.

Depends on #19532
Depends on #19969
Depends on #19981

CC: @dkrenn @cheuberg

Component: asymptotic expansions

Author: Benjamin Hackl, Clemens Heuberger

Branch/Commit: 452c43b

Reviewer: Daniel Krenn

Issue created by migration from https://trac.sagemath.org/ticket/19944

@behackl
Copy link
Member Author

behackl commented Jan 23, 2016

Author: Benjamin Hackl, Clemens Heuberger

@behackl
Copy link
Member Author

behackl commented Jan 23, 2016

Last 10 new commits:

267718dTrac #19532: Additional tests
0860173Trac #19532: List log log factors, document missing implementations
a3a6dfdTrac #19532: Add references
3e23a35Merge branch 't/19532/asy/singularity-analysis' into t/17601/public/asy/trunk
bedd23aTrac #19898: rename harmonic_number to HarmonicNumber
e107b79Merge branch 't/19898/asy/harmonic-number' into t/17601/public/asy/trunk
e750ddeadd code for singularity analysis
af7c73badd example
f212deefix: .summand --> .summands
25a5dd5add precision keyword

@behackl
Copy link
Member Author

behackl commented Jan 23, 2016

Dependencies: #19532

@behackl
Copy link
Member Author

behackl commented Jan 23, 2016

Commit: 25a5dd5

@behackl
Copy link
Member Author

behackl commented Jan 23, 2016

Branch: u/behackl/asy/singularity-analysis

@cheuberg
Copy link
Contributor

comment:2

Rebased on top of #19532 instead of #17601.


New commits:

1529a4dTrac #19510: Merge #19306 (due to #19879)
b30388bTrac #19532: Merge #19510 to fix doctest
7f74b31Trac #19532: Implement zeta != 1
0c600cfadd code for singularity analysis
b8a52c6add example
e3588b6fix: .summand --> .summands
f6a233dadd precision keyword

@cheuberg
Copy link
Contributor

@cheuberg
Copy link
Contributor

Changed commit from 25a5dd5 to f6a233d

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 23, 2016

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

f38cdfcTrac #19532: fix more issues with location of singularities
042849aTrac #19944: merge #19532
a7aec7cTrac #19944: use generating function (as function) instead of singular expansion

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 23, 2016

Changed commit from f6a233d to a7aec7c

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 23, 2016

Changed commit from a7aec7c to a832ebd

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 23, 2016

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

5d87b05Trac #19944: use precision for singular expansion
a832ebdTrac #19944: return singular expansions on request

@cheuberg
Copy link
Contributor

comment:5

Once #19947 is done, input could also be as a symbolic expression plus a variable, which would probably be friendlier.

@cheuberg
Copy link
Contributor

comment:6

Adapt to new version of #19532 and doctest OZero condition.

@behackl
Copy link
Member Author

behackl commented Jan 26, 2016

comment:7

Replying to @cheuberg:

Adapt to new version of #19532 and doctest OZero condition.

Done.


Last 10 new commits:

24c153cTrac #19946: reviewer commit: ReSt error
7918417Trac #19946: additional doctest
bfb72dcTrac #19532: Merge #19946
21054cbTrac #19532: get rid of work-around for #19946
53a35cfMerge branch 'u/cheuberg/asy/singularity-analysis-generator' of git://trac.sagemath.org/sage into asy/singularity-analysis-method
9f650b0handle OZeroException in singularity_analysis
8aa55e2implement exact_part
7276172delete terms from copy instead of building new poset
742ce5bMerge branch 'asy/exact_part' into asy/singularity-analysis-method
a2e430eadd doctest for NotImplementedOZero

@behackl
Copy link
Member Author

behackl commented Jan 26, 2016

@behackl
Copy link
Member Author

behackl commented Jan 26, 2016

Changed commit from a832ebd to a2e430e

@dkrenn
Copy link
Contributor

dkrenn commented Jan 27, 2016

@dkrenn
Copy link
Contributor

dkrenn commented Jan 27, 2016

Changed commit from a2e430e to 3743f9d

@dkrenn
Copy link
Contributor

dkrenn commented Jan 27, 2016

comment:9

I've reviewed the patch and have the following comments:

  1. result.exact_part() == result: Maybe create a follow up ticket implementing is_exact.

  2. The code

            if isinstance(summand, ExactTerm):
                expansion = asymptotic_expansions.\
                    SingularityAnalysis('Z', alpha=alpha, zeta=singularity,
                                        precision=precision).subs(Z=self.gen())
                return summand.coefficient * expansion
            elif isinstance(summand, OTerm):
                return (self.gen() ** (alpha - 1)).O()
is not ideal. It looks like the singularity analysis should be done by the terms themselves and eventually by the growth groups (since they know what they are).
  1. (self.gen() ** (alpha - 1)).O() should depend on the singularity.

  2. In some sense the transfer term (self.gen() ** (alpha - 1)).O() has the same status as the expansion asymptotic_expansions.SingularityAnalysis. So a generation in the generations would be an option. However, I understand, that it is much simpler, so I do not have a strong preference for this.

  3. Parameter description function: mentioned the word "callable"(?) Say that it is a function in one variable.

  4. Parameter return_singular_expansions: in an ideal world, there would not be a different kind of output (asymptotic expansions vs. named tuple). However, I understand it is as it is; it seems that there is no other satisfying solution to this. Am I right?


New commits:

3743f9dTrac #19944 minor changes during review

@dkrenn
Copy link
Contributor

dkrenn commented Jan 27, 2016

Reviewer: Daniel Krenn

@cheuberg
Copy link
Contributor

comment:22

Replying to @dkrenn:

There is an inconsistency in the order of the parameters: in the generators we have var, zeta=1, ..., but in all the _singularity_analysis_ we have zeta, var.

OK, I'll change the _singularity_analysis_ routines.

Once we have #20050, the parameter zeta will be removed.

@cheuberg
Copy link
Contributor

comment:23

Replying to @dkrenn:

...and maybe (but really, maybe): name argument precision in the doctests to make them better readable; e.g. `singularity_analysis('n', 1/2, precision=5)'.

I will do that.

@cheuberg
Copy link
Contributor

@cheuberg
Copy link
Contributor

Changed commit from ad62c31 to 9ce7b35

@cheuberg
Copy link
Contributor

comment:25

Replying to @cheuberg:

Replying to @dkrenn:

There is an inconsistency in the order of the parameters: in the generators we have var, zeta=1, ..., but in all the _singularity_analysis_ we have zeta, var.

OK, I'll change the _singularity_analysis_ routines.

Done.


New commits:

9ce7b35Trac #19944: exchange order of parameters var and zeta in _singularity_analysis_

@cheuberg
Copy link
Contributor

comment:26

Replying to @cheuberg:

Replying to @dkrenn:

...and maybe (but really, maybe): name argument precision in the doctests to make them better readable; e.g. `singularity_analysis('n', 1/2, precision=5)'.

I will do that.

done.

@cheuberg
Copy link
Contributor

comment:27

Replying to @cheuberg:

Done.


New commits:

9ce7b35Trac #19944: exchange order of parameters var and zeta in _singularity_analysis_

I forgot to change the docstrings. I will do so now.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 14, 2016

Changed commit from 9ce7b35 to c79a6f7

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 14, 2016

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

c79a6f7Trac #19944: exchange zeta and var in docstrings

@cheuberg
Copy link
Contributor

comment:29

Replying to @sagetrac-git:

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

c79a6f7 Trac #19944: exchange zeta and var in docstrings
Done.

@dkrenn
Copy link
Contributor

dkrenn commented Feb 14, 2016

comment:30

Replying to @cheuberg:

Replying to @dkrenn:

  1. Is (1-z\zeta) \to 0 correct or should it be (1-z/\zeta) \to 0? Maybe using z\to\zeta instead of (1-z/\zeta) \to 0? (I don't have a strong preference for changing, but from an outside view, this would be easier to understand.

I prefer (1-z/\zeta) \to 0 or perhaps T = 1/(1-z/\zeta) \to \infty.

  1. Should it be mentioned that (in terms and growth groups) a variable (_var_ of the parent) represents/equals 1 / (1-z/\zeta) ?

This should change once asymptotics z->z_0 are implemented.

What about "T = 1/(1-z/\zeta) \to \infty where this element is a growth element (resp. monomial) in T"?

I'm happy with this formulation.

All the other changes are positivly reviewed form my side.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 14, 2016

Changed commit from c79a6f7 to 452c43b

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 14, 2016

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

452c43bTrac #19944: `_singularity_analysis_` methods: more precise documentation

@cheuberg
Copy link
Contributor

comment:32

Replying to @dkrenn:

What about "T = 1/(1-z/\zeta) \to \infty where this element is a growth element (resp. monomial) in T"?

I'm happy with this formulation.

done. needs review.

@dkrenn
Copy link
Contributor

dkrenn commented Feb 14, 2016

comment:33

Replying to @cheuberg:

Replying to @dkrenn:

What about "T = 1/(1-z/\zeta) \to \infty where this element is a growth element (resp. monomial) in T"?

I'm happy with this formulation.

done. needs review.

Fine.

@vbraun
Copy link
Member

vbraun commented Feb 16, 2016

Changed branch from u/cheuberg/asy/singularity-analysis-method to 452c43b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants