-
-
Notifications
You must be signed in to change notification settings - Fork 535
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
computing order of a certain subgroup of a permutation group is double dog slow (compared to Magma) #10976
Comments
This comment has been minimized.
This comment has been minimized.
Changed keywords from none to sd32 |
comment:3
I have a workaround I am testing for this (patch coming soon) that recognizes some subgroups of permutation groups (including stabilizer subgroups of the symmetric group), and can compute the order very quickly (~600 microseconds). The running time of foo(200) above is still about a second, because GAP takes that long to construct the stabilizer group and give us back the generators. In the future, I can add some more cases, or try to develop a more general theory for quickly computing these group orders (the special case I added is based on a argument from graph theory).
|
comment:4
Patch uploaded. Can I get someone to look it over? |
comment:5
The format of the patch is not standard (not made by Sage's Mercurial). It is also the first time I see
and I am not sure if that's OK. Traditionally people who edit the file add themselves there, but "all rights reserved" is a bit scary. |
comment:6
My bad on the patch -- the new one should be in the correct format. So, unfortunately, this is the copyright statement as required by my agreement with Google. The code is still licensed under GPL, but they require that exact wording in the copyright. |
comment:7
Google copyright is fine. What does "all rights reserved" mean exactly. |
comment:8
I think it makes lawyers feel better. Wikipedia says it means nothing. |
comment:9
Just out of curiosity, would it be allowed to do:
instead of
Since it looks like Google is copyrighting the whole file otherwise. |
Patch for 10976 |
Attachment: patch-10976.2.txt Patch for 10976 |
comment:10
Attachment: patch-10976.txt Google said that was fine. I fixed the patch to reflect this. |
renamed to standard format for patch names |
comment:11
Attachment: trac_10976.patch.gz I changed the name of the patch to our standard format. In particular, by ending in .patch instead of .txt, it now gets nicely syntax highlighted. Regarding the actual patch, can you:
|
Attachment: trac_10976.2.patch.gz |
comment:13
I believe that I have addressed your concerns. |
comment:14
I wish we had line-by-line commenting... Anyway:
|
comment:23
Since I'm new here, I don't know what happens now. The developer's guide is a bit murky on what happens after you get a positive review, especially since I don't believe that I have commit privileges? |
comment:24
It's now the release manager's job (jdmeyer). Assuming we didn't forget anything obvious, and he trusts us, he'll apply your patch to one of the releases here (or soon to appear here): http://sage.math.washington.edu/home/release/?C=M;O=D Then the buildbot (or release manager) will run build tests all over the place (on dozens of computers). If any errors pop up, the ticket will get "needs work". If everything is fine, the patch stays in and will appear in the next Sage release (likely sage-5.0). |
comment:25
Replying to @swenson:
This probably means that there should be a ticket clarifying these steps in the developer's guide... |
comment:26
There are several doctest failures with sage-5.0.beta3:
(I'm assuming only the last patch needs to be applied) |
comment:27
Concerning creating patches: you should use "hg export tip", not "hg diff". This way, the uploaded patch contains meta-data about the username, the commit message... If you use Mercurial queues, the commit message can be set using "hg qrefresh -e". If not, simply use "hg commit". |
comment:28
Wow, at least one of those doctest failures shows that there is a mistake in this algorithm:
I think that the author was perhaps assuming that the generators are all transpositions, but didn't test this:
But in the code in the patch we have
|
comment:29
Attachment: trac_10976.6.patch.gz I believe I have fixed the errors. I wasn't able to test against those files on my current box, as they seemed to be giving me a bunch of random, unrelated errors. |
comment:30
Looking at the code, I'm pretty confident this is right and will pass tests. Should the comment |
Attachment: trac_10976.7.patch.gz |
comment:31
Sorry -- forgot that I still had to fix that comment. Comment is now fixed in the latest patch set. Please take a look. |
comment:33
attachment: trac_10976.7.patch doesn't apply to sage-5.0.beta7:
|
Work Issues: rebase |
Attachment: trac_10976.8.patch.gz folded the two patches into one; added proper "Trac #10976" to commit message. |
comment:34
Replying to @jdemeyer:
It does, sort of, but the .patch file actually had two separate HG commits in it, which "we don't do". I (the reviewer) have replaced it by a new patch with only one commit, and fixed the patch log description to start with "Trac #10976". |
comment:35
Thanks. I didn't know about the one-commit-per-patch thing. (In fact, I thought people were arguing against switching to gerrit because it enforces this...) |
Changed work issues from rebase to none |
comment:36
Replying to @williamstein:
There's nothing wrong with that as long as those two commits are in the correct order (which wasn't the case). |
Merged: sage-5.0.beta8 |
See also trac #10804 which is all about the underlying algorithms and ideas related to this problem.
Component: group theory
Keywords: sd32
Author: Christopher Swenson
Reviewer: William Stein
Merged: sage-5.0.beta8
Issue created by migration from https://trac.sagemath.org/ticket/10976
The text was updated successfully, but these errors were encountered: