Hecke.jl
Hecke.jl copied to clipboard
sparse_row and SRow accept NCRing instead of Ring
This is to be able to create Modules in Oscar over non-commutative rings, as discussed with @HechtiDerLachs and @fieker
In particular things like scale_row!
may need two versions, for left and right action...
A crucial aspect of modules over non-commutative rings is that one has to be careful about which actions are left and which are right otherwise things don't work out in the end...
(@mohamed-barakat is an expert on this, perhaps we can consult with him, too ;-) but in principle I think I know the rules, too)
I have added left and right actions in scale_row, add_scaled_row and divexact (not div). There are tests for everything except divexact since I am unable to find a non-commutative ring for which divexact_left is implemented. The tests use an exterior algebra. This ring does not exist in Hecke. If someone could suggest an Hecke NCRing that can be used for tests, that would be great.
R = MatrixAlgebra(QQ, 2)
and a = R([1 2; 3 4])
if you want an element. Or rand(R, -10:10)
for something random.
Someone needs to allow the tests to run :-)
As said, the tests will fail, so no need to approve anything. I have to reapprove for the next commit anyway.
A crucial aspect of modules over non-commutative rings is that one has to be careful about which actions are left and which are right otherwise things don't work out in the end...
(@mohamed-barakat is an expert on this, perhaps we can consult with him, too ;-) but in principle I think I know the rules, too)
I am happy to help, of course :) If you have specific questions please let me know.
@Lax202 I just pushed a commit to resolve the conflicts.
@Lax202 it would be good if you implemented the suggestions from the feedback here or figure out why it can't be done. Feel free to talk to me about details.
Could someone (@thofma @joschmitt) please allow the CI tests to run?
Again someone needs to allow the CI tests to run, please
@Lax202 the documentation tests still have some failures you need to address (we discussed these already):
ExpandTemplates: expanding markdown templates.
Error: no docs found for 'sparse_row(::ZZRing, ::Vector{Tuple{Int, ZZRingElem}})' in `@docs` block in src/manual/misc/sparse.md:30-34
```@docs
sparse_row(::ZZRing, ::Vector{Tuple{Int, ZZRingElem}})
sparse_row(::ZZRing, ::Vector{Tuple{Int, Int}})
sparse_row(::ZZRing, ::Vector{Int}, ::Vector{ZZRingElem})
```
Codecov Report
Attention: Patch coverage is 35.71429%
with 54 lines
in your changes missing coverage. Please review.
Project coverage is 75.62%. Comparing base (
32b8b74
) to head (2e90d2c
). Report is 22 commits behind head on master.
Additional details and impacted files
@@ Coverage Diff @@
## master #1322 +/- ##
==========================================
+ Coverage 75.55% 75.62% +0.06%
==========================================
Files 355 357 +2
Lines 113364 113521 +157
==========================================
+ Hits 85655 85852 +197
+ Misses 27709 27669 -40
Files | Coverage Δ | |
---|---|---|
src/HeckeTypes.jl | 84.36% <62.50%> (ø) |
|
src/Sparse/Row.jl | 73.39% <32.89%> (-10.08%) |
:arrow_down: |
@thofma @joschmitt @fieker can someone please approve the CI runs? @Lax202 just pushed an update which hopefully will address the documenter issue