New method for enumerating shadows of flags of polar spaces
Issue #17
new
During the investigation of issue #13 by Ferdinand, I noticed that the enumeration of shadows of flags of polar spaces is done through the generic method (in geometry.gi). This is very inefficient. I inserted a new method in enumerators.gi for polar spaces to handle this. Compare the old with the new version by the following example (old version: Fining 1.4.1 in gap4.9.3.
gap> q := 3;
3
gap> ps := ParabolicQuadric(6,q);
Q(6, 3)
gap> p := Random(Points(ps));
<a point in Q(6, 3)>
gap> plane := Random(Planes(p));
<a plane in Q(6, 3)>
gap> flag := FlagOfIncidenceStructure(ps,[p,plane]);
<a flag of Q(6, 3) >
gap> lines := ShadowOfFlag(ps,flag,2);
<shadow elements of type 2 in Q(6, 3)>
gap> List(lines);
[ <a line in Q(6, 3)>, <a line in Q(6, 3)>, <a line in Q(6, 3)>,
<a line in Q(6, 3)> ]
gap> time;
67302
Including new method, still in GAP 4.9.3:
gap> q := 3;
3
gap> ps := ParabolicQuadric(6,q);
Q(6, 3)
gap> p := Random(Points(ps));
<a point in Q(6, 3)>
gap> plane := Random(Planes(p));
<a plane in Q(6, 3)>
gap> flag := FlagOfIncidenceStructure(ps,[p,plane]);
<a flag of Q(6, 3) >
gap> lines := ShadowOfFlag(ps,flag,2);
<shadow lines in Q(6, 3)>
gap> List(lines);
[ <a line in Q(6, 3)>, <a line in Q(6, 3)>, <a line in Q(6, 3)>,
<a line in Q(6, 3)> ]
gap> time;
3
The next release of Fining will include this method.
The new method was released in FinInG 1.5, so this issue can be closed