-
Notifications
You must be signed in to change notification settings - Fork 63
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
Extend ideal interface #1731
Extend ideal interface #1731
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1731 +/- ##
==========================================
+ Coverage 87.65% 87.84% +0.18%
==========================================
Files 117 117
Lines 30090 30753 +663
==========================================
+ Hits 26376 27015 +639
- Misses 3714 3738 +24 ☔ View full report in Codecov by Sentry. |
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! Two quick comments
Co-authored-by: Max Horn <[email protected]>
Before, it might have happened that the command `R * ZZRingElem(2)` fails while `R * big(2)` succeeds.
Max: "the advantage is that if some ring type wants to implement say ideal(R::MyRing, n::Int) in a special optimized fashion that avoids constructing R(n), then R*2 would benefit from that" Co-authored-by: Max Horn <[email protected]>
BTW we could perhaps add some basic tests by defining, say
and then we can do some tests... except we can't do much with it, see issue #1734 |
Previously, there was a possibility of an infinite recursion if the base functions were not implemented. Also, writing `R(x)` when `x` is a vector is problematic, it might have unexpected results.
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.
Looks great to me
This is already allowed for Hecke ideals. For consistency, we allow this already in AbstractAlgebra.
Head branch was pushed to by a user without write access
Updating the ideal interface in AbstractAlgebra instead of in OSCAR. This should fix the inconsistencies brought up in oscar-system/Oscar.jl#3826 (comment)
After this pull request is merged, several
ideal
functions can be deleted in OSCAR.