-
Notifications
You must be signed in to change notification settings - Fork 126
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
Potential switch to sparse matrices for monomial orderings #4114
base: master
Are you sure you want to change the base?
Potential switch to sparse matrices for monomial orderings #4114
Conversation
The old code has a lot of root for improvements (for example, not using P.S.: I am asking, because 200x200 is not a size where I would expect large improvements from a sparse representation. |
Sure: R, (x, y, z) = QQ[:x, :y, :z]
F = FreeMod(R, 500)
I, _ = sub(F, gens(F))
@time standard_basis(I)
|
I now have this timing:
|
e6ee24e
to
0002d78
Compare
If we want this, we would have to (also) allow sparse matrices in |
Let's merge PR #4117 first, as it is the more conservative (= safer? maybe?) change. Then we can consider whether and how to get this one here over the finishing line. Thank you for starting it in any case!!! |
@ederc will talk to @RafaelDavidMohr about this later (but Rafael is somewhat busy right now with defense prep) |
This has some non-trivial conflicts. Someone (maybe @HechtiDerLachs) should try to resolve them |
This is a draft for taking some first steps towards using sparse matrices for the
canonical_matrix
of aModuleOrdering
.Today, @jankoboehm and myself investigated the caching of module gbs a little bit. We found that the production of the
canonical_matrix
for theModuleOrdering
s is quite expensive, when the module has many generators (in our example 172). This is probably due to the matrix being dense. I tried to take some steps towards replacing it by a sparse matrix, but reached a point where I couldn't figure out any more how to proceed. However, I thought it might be useful to report on what I did so far and hence I make this draft PR. Let us eventually look into this together.CC: @ederc @RafaelDavidMohr