-
-
Notifications
You must be signed in to change notification settings - Fork 528
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
Implement iteration over some polynomial rings #39399
base: develop
Are you sure you want to change the base?
Conversation
bfa0a1c
to
a9a3660
Compare
Documentation preview for this PR (built with commit 869d166; changes) is ready! 🎉 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In addition, it would be good to add this to the category of InfiniteEnumeratedSets
over finite fields.
There's this thing in the code base
I assume it means it is somehow intended that they should implement |
Well, okay, unless there are no generators (in which case it would obviously be in |
Ah, I misunderstood. You want to add |
So nothing should derive from another class (in the OOP sense), but be an object in the appropriate category (in Sage's way of passing the category to |
By no generators, I was implicitly equating that with the base ring being the zero ring. |
Okay I understood what you mean. ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you. If tests pass, then it can be changed to a positive review.
Curiously enough
which implies… if |
Indeed, and things provided by the category can be slow as they are usually very general implementations. Of course, if you know the size, then you can just return that. In this case, I see it as more pedagogical since nobody will should ask for the cardinality of a polynomial ring...(especially in a tight loop!) Thus, I would not implement it to reduce the maintenance burden. |
The different category leads to different overload of |
Thinking about it, it may be cleaner to implement this in the category of free modules with countable basis over finite/countable base ring, which will handle all of [univariate polynomial ring, multivariate polynomial ring, Laurent polynomial ring, etc.] at once. Being more general leads to being slower though, let's see. |
Right now we don't have a category for modules with enumerated bases. I think you're right in doing the implementation at that level of generality, and likely there won't be any useful speed difference. Do you want to get that done or finalize this PR? For the latter, your |
Anyway… so I think I'd do the generalized route. |
Okay, sounds good. Let me note that enumerated means that every element will be seen in finite time; that is, you have a bijection |
As in the title. Only the case of univariate polynomial ring over finite base ring is handled.
📝 Checklist
⌛ Dependencies