-
Notifications
You must be signed in to change notification settings - Fork 120
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
Streamline powers of Lie algebra modules #3081
Conversation
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 good. As already said: At some point we need to streamline the multiplication map.
da83aab
to
6099be7
Compare
This PR is now ready to be reviewed and merged from my POV. There is still some stuff do do around direct sums and tensor products, but I would like to postpone that to a future PR that tackles #3059 for Lie algebra modules. @HechtiDerLachs could you please in particular have a look at the changes in |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #3081 +/- ##
==========================================
+ Coverage 81.14% 81.27% +0.12%
==========================================
Files 556 556
Lines 73894 74005 +111
==========================================
+ Hits 59963 60144 +181
+ Misses 13931 13861 -70
|
`exterior_power(::FreeMod)` now completely stable, for `SubquoModule` only partially
direct sum and tensor product still missing
d02b98f
to
a47ce6b
Compare
bump @HechtiDerLachs |
@attr Dict{Int, Tuple{typeof(F), MapFromFunc}} function _exterior_powers(F::ModuleFP) | ||
return Dict{Int, Tuple{typeof(F), MapFromFunc}}() |
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.
@attr Dict{Int, Tuple{typeof(F), MapFromFunc}} function _exterior_powers(F::ModuleFP) | |
return Dict{Int, Tuple{typeof(F), MapFromFunc}}() | |
@attr Dict{Int, Tuple{typeof(F), <:MapFromFunc}} function _exterior_powers(F::ModuleFP) | |
return Dict{Int, Tuple{typeof(F), MapFromFunc}}() |
This might be a bit too restrictive. Maybe, one day we change the return type. And they are both abstract, so no harm is done staying with just Map
right?
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.
Tuples are invariant in julia, thus the <:
shouldn't be there.
As all of this is purely internal, we can change that to Map back anytime we want. But making it as concrete as possible helps type inference massively. In this particular case, it can use some of the annotations in the MapFromFunc
code in Hecke
Co-authored-by: Matthias Zach <[email protected]>
Tests still fail. Other than that, I can approve for my part. Let me know when you're ready. |
@@ -513,7 +513,7 @@ function degree(f::FreeModElem) | |||
iszero(f) && return A[0] | |||
f.d = isa(f.d, GrpAbFinGenElem) ? f.d : determine_degree_from_SR(coordinates(f), degrees(parent(f))) | |||
isa(f.d, GrpAbFinGenElem) || error("The specified element is not homogeneous.") | |||
return f.d | |||
return f.d::GrpAbFinGenElem |
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.
btw this was the culprit
I found a small fix for the failure, that made it possible to revert some other changes to enhance readability. |
CI now looks good |
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.
I think the style adjustment is not worth running the tests again. So if there's nothing else, go ahead with the merge from my side.
R = base_ring(M) | ||
((p >= 0) && (p <= n)) || error("exponent out of range") | ||
R = base_ring(M)::base_ring_type(M) | ||
@req 0 <= p <= n "Exponent out of bounds" |
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.
@req 0 <= p <= n "Exponent out of bounds" | |
@req 0 <= p <= n "exponent out of bounds" |
Make the code very similar to the exterior powers of ModuleFP by @HechtiDerLachs.
Furthermore, fix some type instabilities in the exterior power code of ModuleFP.