-
Notifications
You must be signed in to change notification settings - Fork 162
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
Improve performance of NormalizerViaRadical #2924
Conversation
hulpke
commented
Oct 16, 2018
- Avoid unnecessary membership test that would be expensive
- Clean up commented-out debugging code
- Improve action on cohomology by going to factor modules first
lib/norad.gi
Outdated
@@ -562,6 +552,7 @@ local sus,ser,len,factorhom,uf,n,d,up,mran,nran,mpcgs,pcgs,pcisom,nf,ng,np,sub, | |||
# work in quotient modules first | |||
module:=GModuleByMats(Concatenation(ngm,npm),f); | |||
sumos:=Reversed(MTX.BasesCompositionSeries(module)); | |||
Info(InfoFitFree,2,"module layers ",List(sumos,Length)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick (can be ignored): odd indentation (perhaps spaces vs tabs?)
ranges:=List([1..Length(part)], | ||
x->[(x-1)*Length(lfamo)+1..x*Length(lfamo)]); | ||
|
||
sub:=Concatenation(List(part,a->List(lfamo,x->Zero(f)))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't this just creating a matrix equal to NullMat(Length(part), Length(lfamo), f)
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No. It is ListWithIdenticalEntries(Length(part)*Length(lfamo),Zero(f))
. The Concatenation
makes it clear that this is cohomology liosted as module entries associated to the generators in part
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed, somehow I (rather stupidly) missed the Concatenation
bit.
lib/norad.gi
Outdated
l:=Concatenation(l); | ||
l:=SiftedVector(bound,l); | ||
ConvertToVectorRep(l,Size(f)); | ||
MakeImmutable(l); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you could also replace these two lines by l := ImmutableVector(f, l);
, which may have advantages as the work on MatrixObj proceeds (but you can also leave it, and we'll convert this then).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. (Code predated ImmutableVector
and the change here was indent or similar.)
lib/norad.gi
Outdated
return l; | ||
end; | ||
|
||
# as corrections involve only pcgs parts, the images inthe |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
inthe -> in the
Codecov Report
@@ Coverage Diff @@
## master #2924 +/- ##
==========================================
+ Coverage 78.9% 78.91% +<.01%
==========================================
Files 681 681
Lines 346670 346684 +14
==========================================
+ Hits 273555 273576 +21
+ Misses 73115 73108 -7
|
within NormalizerViaRadical in matrix groups.
…uce orbit length.