-
-
Notifications
You must be signed in to change notification settings - Fork 553
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
Increase speed for Coxeter groups, Weyl groups, and quantum Bruhat graph #19821
Comments
New commits:
|
Commit: |
comment:2
Also,
|
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:4
A few questions:
Also, when changing DiGraph, can you please add the right format in analogy to sagemath/sagetrac-mirror@6cb47c0 ? Thank you! |
comment:5
Replying to @darijgr:
It is the usual Bruhat poset but with added "quantum" edges that are used for many purposes. One particular use in Sage is for specializations of Macdonald polynomials at
Not exactly, but essentially the same tests in
Technically I didn't change the input for the digraph, but I can add it in if you're not going to make other additions. |
comment:6
I'm not making any additions today, as I'd have to learn this stuff first (and I don't know if I have time for that) and even then I wouldn't be sure of the thinking behind the removal of Thanks for the references! |
comment:7
For UCF comparison, it will be faster after #19825 (it avoids QQbar usage). |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:11
Replying to @darijgr:
Added. The Replying to @videlec:
With #19825 and my recent changes, it just takes 4 seconds on my laptop to iterate over D5. Now the biggest speed gain (about 2.5s) will be in improving matrix multiplication over the UCF, as opposed to speeding up the comparisons (about 1.5s) One takeaway message: if you are working in a simply-laced type for |
comment:13
See #16116 for a discussion on speeding up matrices over (universal) cyclotomic fields. |
comment:14
Replying to @tscrim:
Or more generally a crystalographic type, I assume? Thanks for the hard work btw! |
comment:15
Also: you may want to add a datapoint on #9285 after this. |
comment:16
Replying to @nthiery:
No, it only works for simply-laced types as the
I also added my datapoint for #9285, but it seems infeasible at this point using
Moreover, a non-trivial amount of time is spent gathering the information to run the check for descents:
So there is definite room for optimization, but it would likely lead to some code duplication. I think Florent's parallelization of However, this data will be rendered obsolete in a moment because I will be pushing a specialized version of |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:21
(Indeed, I just wanted to start some comparisons, but ran into the problem fixed in #19795. I now have to first rebuild Sage to |
comment:22
@fchapoton I haven't looked too closely at the changes to #11010, but I do suspect it will improve things there. @stumpc5 In case you didn't catch it, Jeoren had mentioned on sage-release that you will need to run
|
comment:23
Yep, realized that after compiling for a few hours.
This seems like an infeasible project for anyone not having many months spare time doing nothing but this while sitting next to someone knowing about the needs of the particular packages. (In short: this seems like an infeasible project.) Nevertheless, it needs to be started at some point anyway... |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Dependencies: #19870 |
comment:25
The cythonization of matrix group elements is now #19870. I pulled the changes to the matrix group elements to #19870, so that is why it is set as a dependency (but I did not merge that branch in yet). However, it is simple enough to swap the dependencies if this gets a positive review first. |
comment:27
I have now merged in #19870. I also made the generators to |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:31
I fixed a trivial failing doctest and implemented a custom |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Changed dependencies from #19870 to none |
Reviewer: Frédéric Chapoton |
comment:34
ok, looks good enough to me. Let it be |
Changed branch from public/combinat/speedup_coxeter_weyl_matrix_groups-19821 to |
The primary goal of this ticket is to improve the creation speed for the quantum Bruhat graph. We do this in a number of ways:
lattice.nonparabolic_positive_roots
.In addition, we also provide some general speedups to all matrix groups and Coxeter groups that came from looking into the above improvements. The net result is over 12x speedup of the creation of the quantum Bruhat graph:
whereas previously this took over 3 minutes to compute. The downside is this has a larger memory footprint because of the temporary cache, but repeatedly computing the lengths of the elements was far too expensive.
This also includes a speedup of iterating over the entire Coxeter/Weyl group.
CC: @sagetrac-sage-combinat @anneschilling @sagetrac-mshimo @nthiery @darijgr @fchapoton @stumpc5 @jplab
Component: combinatorics
Keywords: quantum bruhat graph
Author: Travis Scrimshaw
Branch/Commit:
0ce02a6
Reviewer: Frédéric Chapoton
Issue created by migration from https://trac.sagemath.org/ticket/19821
The text was updated successfully, but these errors were encountered: