Database of generalised quadrangles with spread#
This module implements some construction of generalised quadrangles with spread.
EXAMPLES:
sage: GQ, S = designs.generalised_quadrangle_with_spread(4, 16, check=False)
sage: GQ
Incidence structure with 325 points and 1105 blocks
sage: GQ2, O = designs.generalised_quadrangle_hermitian_with_ovoid(4)
sage: GQ2
Incidence structure with 1105 points and 325 blocks
sage: GQ3 = GQ.dual()
sage: set(GQ3._points) == set(GQ2._points)
True
sage: GQ2.is_isomorphic(GQ3) # long time
True
REFERENCES:
AUTHORS:
Ivo Maffei (2020-07-26): initial version
- sage.combinat.designs.gen_quadrangles_with_spread.dual_GQ_ovoid(GQ, O)#
Compute the dual incidence structure of GQ and return the image of \(O\) under the dual map
INPUT:
GQ
– IncidenceStructure; the generalised quadrangle we want the dual ofO
– iterable; the iterable of blocks we want to compute the dual
OUTPUT:
A pair
(D, S)
whereD
is the dual ofGQ
andS
is the dual ofO
EXAMPLES:
sage: from sage.combinat.designs.gen_quadrangles_with_spread import \ ....: dual_GQ_ovoid sage: t = designs.generalised_quadrangle_hermitian_with_ovoid(3) sage: t[0].is_generalized_quadrangle(parameters=True) (9, 3) sage: t = dual_GQ_ovoid(*t) sage: t[0].is_generalized_quadrangle(parameters=True) (3, 9) sage: all([x in t[0] for x in t[1]]) True
- sage.combinat.designs.gen_quadrangles_with_spread.generalised_quadrangle_hermitian_with_ovoid(q)#
Construct the generalised quadrangle \(H(3,q^2)\) with an ovoid.
The GQ has order \((q^2,q)\).
INPUT:
q
– integer; a prime power
OUTPUT:
A pair
(D, O)
whereD
is an IncidenceStructure representing the generalised quadrangle andO
is a list of points ofD
which constitute an ovoid ofD
EXAMPLES:
sage: t = designs.generalised_quadrangle_hermitian_with_ovoid(4) sage: t[0] Incidence structure with 1105 points and 325 blocks sage: len(t[1]) 65 sage: G = t[0].intersection_graph([1]) # line graph sage: G.is_strongly_regular(True) (325, 68, 3, 17) sage: set(t[0].block_sizes()) {17}
REFERENCES:
For more on \(H(3,q^2)\) and the construction implemented here see [PT2009] or [TP1994].
- sage.combinat.designs.gen_quadrangles_with_spread.generalised_quadrangle_with_spread(s, t, existence=False, check=True)#
Construct a generalised quadrangle GQ of order \((s,t)\) with a spread S.
INPUT:
s, t
– integers; order of the generalised quadrangleexistence
– boolean;check
– boolean; ifTrue
, then Sage checks that the object built is correct. (default:True
)
OUTPUT:
A pair \((GQ, S)\) where \(GQ\) is a
IncidenceStructure
representing the generalised quadrangle and \(S\) is a list of blocks of \(GQ\) representing the spread of \(GQ\).EXAMPLES:
sage: t = designs.generalised_quadrangle_with_spread(3, 9) sage: t[0] Incidence structure with 112 points and 280 blocks sage: designs.generalised_quadrangle_with_spread(5, 25, existence=True) True sage: (designs.generalised_quadrangle_with_spread(4, 16, check=False))[0] Incidence structure with 325 points and 1105 blocks sage: designs.generalised_quadrangle_with_spread(0, 2, existence=True) False
REFERENCES:
For more on generalised quadrangles and their spread see [PT2009] or [TP1994].
- sage.combinat.designs.gen_quadrangles_with_spread.is_GQ_with_spread(GQ, S, s=None, t=None)#
Check if GQ is a generalised quadrangle of order \((s,t)\) and check that S is a spread of GQ
INPUT:
GQ
– IncidenceStructure; the incidence structure that is supposed to be a generalised quadrangleS
– iterable; the spread ofGQ
as an iterable of the blocks ofGQ
s, t
– integers (optional); if \((s,t)\) are given, then we check thatGQ
has order \((s,t)\)
EXAMPLES:
sage: from sage.combinat.designs.gen_quadrangles_with_spread import * sage: t = generalised_quadrangle_hermitian_with_ovoid(3) sage: is_GQ_with_spread(*t) Traceback (most recent call last): ... TypeError: 'int' object is not iterable sage: t = dual_GQ_ovoid(*t) sage: is_GQ_with_spread(*t) True sage: is_GQ_with_spread(*t, s=3) True