Orthogonal Linear Groups

Paraphrased from the GAP manual: The general orthogonal group GO(e,d,q) consists of those d\times d matrices over the field GF(q) that respect a non-singular quadratic form specified by e. (Use the GAP command InvariantQuadraticForm to determine this form explicitly.) The value of e must be 0 for odd d (and can optionally be omitted in this case), respectively one of 1 or -1 for even d.

SpecialOrthogonalGroup returns a group isomorphic to the special orthogonal group SO(e,d,q), which is the subgroup of all those matrices in the general orthogonal group that have determinant one. (The index of SO(e,d,q) in GO(e,d,q) is 2 if q is odd, but SO(e,d,q) = GO(e,d,q) if q is even.)

Warning

GAP notation: GO([e,] d, q), SO([e,] d, q) ([...] denotes and optional value)

Sage notation: GO(d, GF(q), e=0), SO( d, GF(q), e=0)

There is no Python trick I know of to allow the first argument to have the default value e=0 and leave the other two arguments as non-default. This forces us into non-standard notation.

AUTHORS:

  • David Joyner (2006-03): initial version
  • David Joyner (2006-05): added examples, _latex_, __str__, gens, as_matrix_group
  • William Stein (2006-12-09): rewrite
sage.groups.matrix_gps.orthogonal.GO(n, R, e=0)

Return the general orthogonal group.

EXAMPLES:

class sage.groups.matrix_gps.orthogonal.GeneralOrthogonalGroup_finite_field(n, R, e=0, var='a')
Bases: sage.groups.matrix_gps.orthogonal.GeneralOrthogonalGroup_generic, sage.groups.matrix_gps.matrix_group.MatrixGroup_gap_finite_field
class sage.groups.matrix_gps.orthogonal.GeneralOrthogonalGroup_generic(n, R, e=0, var='a')

Bases: sage.groups.matrix_gps.orthogonal.OrthogonalGroup

EXAMPLES:

sage: GO( 3, GF(7), 0)
General Orthogonal Group of degree 3, form parameter 0, over the Finite Field of size 7
sage: GO( 3, GF(7), 0).order()
672
sage: GO( 3, GF(7), 0).random_element()
[5 1 4]
[1 0 0]
[6 0 1]
invariant_quadratic_form()

This wraps GAP’s command “InvariantQuadraticForm”. From the GAP documentation:

INPUT:

  • self - a matrix group G

OUTPUT:

  • Q - the matrix satisfying the property: The quadratic form q on the natural vector space V on which G acts is given by q(v) = v Q v^t, and the invariance under G is given by the equation q(v) = q(v M) for all v \in V and M \in G.

EXAMPLES:

sage: G = GO( 4, GF(7), 1)
sage: G.invariant_quadratic_form()
[0 1 0 0]
[0 0 0 0]
[0 0 3 0]
[0 0 0 1]
class sage.groups.matrix_gps.orthogonal.OrthogonalGroup(n, R, e=0, var='a')

Bases: sage.groups.matrix_gps.matrix_group.MatrixGroup_gap

invariant_form()

Return the invariant form of this orthogonal group.

TODO: What is the point of this? What does it do? How does it work?

EXAMPLES:

sage: G = SO( 4, GF(7), 1)
sage: G.invariant_form()
1
sage.groups.matrix_gps.orthogonal.SO(n, R, e=0, var='a')

Return the special orthogonal group of degree n over the ring R.

INPUT:

  • n - the degree
  • R - ring
  • e - a parameter for orthogonal groups only depending on the invariant form

EXAMPLES:

sage: G = SO(3,GF(5))
sage: G.gens()
[
[2 0 0]
[0 3 0]
[0 0 1],
[3 2 3]
[0 2 0]
[0 3 1],
[1 4 4]
[4 0 0]
[2 0 4]
]       
sage: G = SO(3,GF(5))
sage: G.as_matrix_group()
Matrix group over Finite Field of size 5 with 3 generators:
[[[2, 0, 0], [0, 3, 0], [0, 0, 1]], [[3, 2, 3], [0, 2, 0], [0, 3, 1]], [[1, 4, 4], [4, 0, 0], [2, 0, 4]]]
class sage.groups.matrix_gps.orthogonal.SpecialOrthogonalGroup_finite_field(n, R, e=0, var='a')
Bases: sage.groups.matrix_gps.orthogonal.SpecialOrthogonalGroup_generic, sage.groups.matrix_gps.matrix_group.MatrixGroup_gap_finite_field
class sage.groups.matrix_gps.orthogonal.SpecialOrthogonalGroup_generic(n, R, e=0, var='a')

Bases: sage.groups.matrix_gps.orthogonal.OrthogonalGroup

EXAMPLES:

sage: G = SO( 4, GF(7), 1); G
Special Orthogonal Group of degree 4, form parameter 1, over the Finite Field of size 7
sage: G._gap_init_()
'SO(1, 4, 7)'
sage: G.random_element()
[1 2 5 0]
[2 2 1 0]
[1 3 1 5]
[1 3 1 3]
invariant_quadratic_form()

Return the quadratic form q(v) = v Q v^t on the space on which this group G that satisfies the equation q(v) = q(v M) for all v \in V and M \in G.

Note

Uses GAP’s command InvariantQuadraticForm.

OUTPUT:

  • Q - matrix that defines the invariant quadratic form.

EXAMPLES:

sage: G = SO( 4, GF(7), 1)
sage: G.invariant_quadratic_form()
[0 1 0 0]
[0 0 0 0]
[0 0 3 0]
[0 0 0 1]

Previous topic

Special Linear Groups

Next topic

Symplectic Linear Groups

This Page