New method for enumerating shadows of flags of polar spaces

Issue #17 new
Jan De Beule repo owner created an issue

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.

Comments (1)

  1. Log in to comment