-
-
Notifications
You must be signed in to change notification settings - Fork 452
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
Add infinite q-Pochhammer symbol #34381
Comments
Author: Travis Scrimshaw |
Commit: |
comment:1
After doing this, we might want to move the construction of the underlying function to the lazy series ring. We might also want to special case composition of a lazy Laurent series with a monomial in a lazy Laurent series. New commits:
|
This comment has been minimized.
This comment has been minimized.
Changed keywords from none to q_pochhammer, euler function |
This comment has been minimized.
This comment has been minimized.
comment:3
This also does not conflict with #32324. |
comment:4
Cool! It makes me happy to see so many possibilities opening up! Question: what do you mean with moving the construction of the underlying function to the Idea / Suggestion: maybe it makes sense to use "dummy" (or something similar) instead of "z" for the variable name, to make it clear to the reader that it plays no role. Of course, this would equally apply to all the other special functions. I am not sure about the benefit / cost ratio, I am not even sure that there would be a benefit. |
comment:5
Replying to @mantepse:
For each of these special functions, we first construct a series
It gets substituted out every time. So it is never visible, and so I see no net change (although it would make a bug easier to spot if we ended up in the very unlikely scenario that the composition returned the wrong parent). If we wanted to do this, we should do it for all special functions simultaneously on a follow-up ticket. |
comment:6
Replying to @tscrim:
Indeed, that makes a lot of sense to me. Similarly for all the other special functions where we end up composing with self in the last line. |
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
|
Dependencies: #32324 |
comment:8
Replying to @mantepse:
I did this just for the functions implemented on this ticket. Although I forgot to revert back my merge with #32324, but since that is positively reviewed, I am just adding it as a dependency (if you'll allow me to be lazy about it). |
comment:9
No problem. For #32367 I need a few more operations on lazy series, like reversion for Do you prefer to get |
comment:10
Replying to @mantepse:
That's good to hear. Let me know if I can help.
Yes. I think it would be good to have that functionality available and get people to start using it. Send me an email if you want to do a Zoom call too. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:12
Bot was green modulo the pyflakes issues, which I have just pushed. I have also tested this locally post change. |
Changed keywords from q_pochhammer, euler function to q_pochhammer, euler function, LazyPowerSeries |
Reviewer: Martin Rubey |
comment:15
I am a bit unhappy about the amount of (documentation) duplication, especially, since it would be nice to do this for all the "special" functions. |
comment:16
Unfortunately that is not possible. Note that they are actually different functions with different doctests. We can make a link, but we cannot do any duplication. |
comment:19
One tiny thing: I think that we should be explicit that the function passed should be interpreted as coefficients:
diff --git a/src/sage/rings/lazy_series_ring.py b/src/sage/rings/lazy_series_ring.py
index b7b1953f52f..51e2b1c365f 100644
--- a/src/sage/rings/lazy_series_ring.py
+++ b/src/sage/rings/lazy_series_ring.py
@@ -1550,7 +1550,7 @@ class LazyLaurentSeriesRing(LazySeriesRing):
one = qP.one()
def coeff(n):
return (-1)**n * q**binomial(n, 2) / qP.prod(one - q**i for i in range(1, n+1))
- return self(coeff, valuation=0)
+ return self(coefficients=coeff, valuation=0)
def euler(self):
r"""
@@ -1588,7 +1588,7 @@ class LazyLaurentSeriesRing(LazySeriesRing):
if rem:
return ZZ.zero()
return (-1) ** ((m + 1) // 6)
- return self(coeff, valuation=0)
+ return self(coefficients=coeff, valuation=0)
###################################################################### If this looks OK to you, let's go (with a big "thank you" for reviewing all the other issues, and being careful with #15248, etc.)! |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:22
Good catch. Thank you. (No problem. Sorry I haven't been able to work so much on the other tickets, but I right now have a bit of time at least.) |
comment:24
Thank you. |
Changed branch from public/rings/infinite_q_pochhammer-34381 to |
(z; q)_{\infty}
has a nice expression for its coefficients inz
. We implement this very important series as a lazy Laurent series.We implement the Euler function
(q; q)_{\infty}
as a lazy Laurent series inq
as well.Depends on #32324
CC: @mantepse @fchapoton
Component: algebra
Keywords: q_pochhammer, euler function, LazyPowerSeries
Author: Travis Scrimshaw
Branch/Commit:
247faf7
Reviewer: Martin Rubey
Issue created by migration from https://trac.sagemath.org/ticket/34381
The text was updated successfully, but these errors were encountered: