Work towards fixing PreservedSesquilinearForms#52
Conversation
951fd3b to
757807e
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #52 +/- ##
=======================================
Coverage 82.35% 82.35%
=======================================
Files 5 5
Lines 3475 3475
=======================================
Hits 2862 2862
Misses 613 613 |
| ############################################################################# | ||
| ## | ||
| #F ClassicalForms_InvariantFormDual( <module>, <dmodule> ) | ||
| #F ClassicalForms_InvariantFormDual( <gens_scalars> ) |
There was a problem hiding this comment.
Actually the recog package calls ClassicalForms_InvariantFormDual, so changing this here breaks recog. It would be great if we could avoid that. That could also include changing recog to call ClassicalForms_InvariantFormDual differently, but that's a lot more work and has to be carefully coordinated. Perhaps the old ClassicalForms_InvariantFormDual can be kept and the new code be added under a new name?
Or perhaps recog should be changed to not call these functions and instead call some alternative higher level functions, whatever they might be (perhaps they don't exist yet...)
Here is how recog calls this and a few other forms functions:
# now try to find an invariant form
if recognise.maybeDual then
dmodule := ClassicalForms_GeneratorsWithoutScalarsDual(grp);
if dmodule <> false then
form := ClassicalForms_InvariantFormDual(module,dmodule);
if form <> false then
Add( recognise.ClassicalForms,
BilinearFormByMatrix(form[2], field));
if Length(form)=4 then
recognise.QuadraticFormType := form[1];
recognise.QuadraticForm := QuadraticFormByMatrix(form[4]);
fi;
return false;
else
recognise.maybeDual := false;
fi;
fi;
fi;
if recognise.maybeFrobenius then
fmodule := ClassicalForms_GeneratorsWithoutScalarsFrobenius(grp);
if fmodule <> false then
form := ClassicalForms_InvariantFormFrobenius(module,fmodule);
if form <> false then
Add( recognise.ClassicalForms,
HermitianFormByMatrix(form[2], field));
return false;
else
recognise.maybeFrobenius := false;
fi;
fi;
fi;| champion := [gens[i],AsList(Group(PrimitiveElement(field)))]; | ||
| len := Length(champion[2]); |
There was a problem hiding this comment.
Isn't this the same as the following?
| champion := [gens[i],AsList(Group(PrimitiveElement(field)))]; | |
| len := Length(champion[2]); | |
| champion := [gens[i],AsList(Units(field))]; | |
| len := Size(field)-1; |
@jdebeule as discussed, I reverted the
PreservedSesquilinearFormschanges frommasterand put them into a new branchfix_recognition. This PR tracks that branch, so if you make updates, they get tested by our CI.Another advantage: I can leave code comments here :-)