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

adding the ring of quantum-valued polynomials #38952

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from

Conversation

fchapoton
Copy link
Contributor

This is a q-analogue of the ring of integer-valued polynomials. The elements are polynomials in x such that their evaluation at every q-integer is a polynomial in q.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

Copy link

github-actions bot commented Nov 10, 2024

Documentation preview for this PR (built with commit 8efd47b; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

src/sage/rings/polynomial/q_integer_valued_polynomials.py Outdated Show resolved Hide resolved
src/sage/rings/polynomial/q_integer_valued_polynomials.py Outdated Show resolved Hide resolved

INPUT:

- ``R`` -- commutative ring
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be good to have q be included as an argument, subsequently it would be a part of the ground ring. Now you can have an option like if the input is :

  1. Only R, then append q as currently implemented.
  2. Both (R, q), then do q = R(q).
  3. Just q and get R = q.parent().

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I would rather not allow a custom q. The ring R is not there to provide q, in my mind. I have added a sentence about that in the doc.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don’t expect anyone to want to specialize q? It also feels slightly off mathematically to not have q in the base ring, but perhaps that is just from my experience with Hecke algebras and quantum groups...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure. For my own usage, I have a base ring of coefficients, almost always QQ, and the variable q on top of that. For this algebra of quantum-valued polynomials, I can see no interest to have q a complex number. Of course, one can evaluate to polynomials and then evaluate q if one will.

j = ZZ(n2)
if j < i:
j, i = i, j
q = self.base_ring().gen()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than getting this every time, I think it would be better to store self._q = self.base_ring().gen() in the __init__.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new attribute "_q" is not inherited by the Bases. So I have made a method ".q" there. If you have a better way, please tell me.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Either have an ABC for the basis or just have both of them provide it.

Nevertheless, having a method q() is a good idea.

src/sage/rings/polynomial/q_integer_valued_polynomials.py Outdated Show resolved Hide resolved
src/sage/rings/polynomial/q_integer_valued_polynomials.py Outdated Show resolved Hide resolved
src/sage/rings/polynomial/q_integer_valued_polynomials.py Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants