[Up] [Previous] [Next] [Index]

# 7.4 Invariants for Projective Planes

The functions `NrFanoPlanesAtPoints`, `pRank`, `FingerprintAntiFlag` and `FingerprintProjPlane` calculate invariants for finite projective planes. For more details see RoederDiss and MoorhouseGraphs. The values of some of these invariants are available from the homepages of Moorhouse and Royle for many planes.

- `NrFanoPlanesAtPoints(` points`,` data`) O`

  For a projective plane defined by the blocks data as returned by `ElationPrecalc`, `NrFanoPlanesAtPoints(`points`,`data`)` calculates the so-called Fano invariant. That is, for each point in points, the number of subplanes of order 2 (so-called Fano planes) containing this point is calculated. The method returns a list of pairs of the form [point ,number ] where number is the number of Fano sub-planes in point.

- `NrFanoPlanesAtPointsSmall(` pointlist`,` data`) O`

  Uses data as returned by `ElationPrecalcSmall`. Only use this, if you want to do a quick experiment in a plane of small order and don't like to generate a new set of data with `ElationPrecalc`. The difference between `NrFanoPlanesAtPoints` and `NrFanoPlanesAtPointsSmall` is that the ``small'' version does some operations for lists (like `Intersection`) whereas the ``large'' version does only read matrix entries. This makes quite a difference as for a plane of order n, there are

  |   | n+1 3 |   |  |   | n 2 |   | n

  quadrangles to be tested per point.

- `IncidenceMatrix(` points`,` blocks`) O`
- `IncidenceMatrix(` data`) O`

  returns a matrix I, where the columns are numbered by the blocks and the rows are numbered by points. And I[i][j]=1 if and only if points[i] is incident (contained in) blocks[j].

- `pRank(` blocklist`,` p`) O`
- `pRank(` data`,` p`) O`

  Let I be the incidence matrix of the projective plane given by the list of blocks blocklist or the record data as returned by `ElationPrecalc`. The rank of I·It as a matrix over GF(p) is called p-rank of the projective plane. Here It denotes the transposed matrix.

  As `pRank` calls `IncidenceMatrix`, the list blocklist has to be a list of lists of integers.

- `FingerprintProjPlane(` blocks`) O`
- `FingerprintProjPlane(` data`) O`

  For each anti-flag (p,l) of a projective plane of order n, define an arbitrary but fixed enumeration of the lines through p and the points on l. Say l1,...,ln+1 and p1,...,pn+1 The incidence relation defines a canonical bijection between the li and the pi and hence a permutation on the indices 1,...,n+1. Let σ(p,l) be this permutation.

  Denote the points and lines of the plane by q1,... qn2+n+1 and e1,...,en2+n+1. Define the sign matrix as Aij=sgn(σ(qi,ej)) if (qi,ej) is an anti-flag and =0 if it is a flag. Then the fingerprint is defnied as the multiset of the entries of |AAt|. Here data is a record as returned by `ElationPrecalcSmall`.

- `FingerprintAntiFlag(` point`,` linenr`,` data`) O`

  Let m1,...,mn+1 be the lines containing point and E1,...,En+1 the points on the line given by linenr such that Ei is incident with mi. Now label the points of mi as point =Pi,1,...,Pi,n+1=Ei and the lines of Ei as line =l1,...,li,n+1=mi. For i ≠ j, each Pj,k lies on exactly one line li,kσi,j containing Ei for some permutation σi,j

  Define a matrix A, where Ai,j is the sign of σi,j if i ≠ j and Ai,i=0 for all i. The partial fingerprint is the multiset of entries of |AAt| where At denotes the transposed matrix of A.

  this is a ``small'' function.

  [Up] [Previous] [Next] [Index]