Open martinra opened 2 weeks ago
Is is desirable at all to have this in Nemo or should this go to flint. In N+N' months I could also attend to this.
We definitely want to have this in Flint!
@joschmitt has been implemented solving stuff for arbitrary PIRs that impelement the Howell form. Since this exists, we should just make use of it.
It is basically this function here: https://github.com/thofma/Hecke.jl/blob/0cf400dfaa770a309c2f0a2c57cb881a8e53fce5/src/NumFieldOrd/NfOrd/StrongEchelonForm.jl#L276 This works at the moment for quotient rings of rings of integers or valuation rings of local fields. But we discussed moving this to up to AbstractAlgebra so that any ring implementing howell_form
can hook into this.
@martinra we will cook something up, which will make it work for zzModMatrix
and ZZModMatrix
(and maybe many more rings!).
Thanks! That's fantastic.
Currently, the code in Flint is only guaranteed to work for prime modulus. I needed more and have implemented it. Currently, I don't want to take the time to polish this up (but if nobody comes before me, I'll do this once my current priority is completed in N months for some large N). In the meantime, I'll leave the code for reference and for discussion. Note that there is a similar issue about matrix inversion #956, which can be resolved with this code also.
Questions that I have:
A little test