10.15 Orthogonal Linear Groups

Module: sage.groups.matrix_gps.orthogonal

Paraphrased from the GAP manual: The general orthogonal group $ GO(e,d,q)$ consists of those $ d imes 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.

Author Log:

Module-level Functions

GO( d, R, [e=0])

SO( d, R, [e=0])

Class: GeneralOrthogonalGroup_finite_field

class GeneralOrthogonalGroup_finite_field

Class: GeneralOrthogonalGroup_generic

class GeneralOrthogonalGroup_generic

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()  ## random output
[1 6 6]
[3 2 6]
[3 6 5]

Functions: as_matrix_group,$  $ gens,$  $ invariant_quadratic_form

as_matrix_group( self)

sage: G = GO(3,GF(5))
sage: G.as_matrix_group()
Matrix group over Finite Field of size 5 with 2 generators:
[[[2, 0, 0], [0, 3, 0], [0, 0, 1]], [[0, 1, 0], [1, 4, 4], [0, 2, 1]]]

gens( self)

sage: G = GO(3,GF(5))
sage: G.gens()
[[2 0 0]
 [0 3 0]
 [0 0 1], [0 1 0]
          [1 4 4]
          [0 2 1]]

invariant_quadratic_form( self)

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$.

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]

Special Functions: __str__,$  $ _gap_init_,$  $ _latex_,$  $ _repr_

__str__( self)

sage: G = GO(3,GF(5))
sage: print G
GO(3, GF(5), 0)

_gap_init_( self)

sage: GO( 3, GF(7), 0)._gap_init_()
'GO(0, 3, 7)'

_latex_( self)

sage: G = GO(3,GF(5))
sage: G._latex_()
'GO$(3, 5, 0)$'

Class: SpecialOrthogonalGroup_finite_field

class SpecialOrthogonalGroup_finite_field

Class: SpecialOrthogonalGroup_generic

class SpecialOrthogonalGroup_generic

       sage: G = SO( 4, GF(7), 1)
       sage: 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()
       [4 2 5 6]
[0 3 2 4]
[5 3 5 2]
[1 1 6 2]

Functions: as_matrix_group,$  $ gens,$  $ invariant_quadratic_form

as_matrix_group( self)

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]]]

gens( self)

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]]

invariant_quadratic_form( self)

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$.

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]

Special Functions: __str__,$  $ _gap_init_,$  $ _latex_,$  $ _repr_

__str__( self)

sage: G = SO(3,GF(5))
sage: print G
SO(3, GF(5), 0)

_gap_init_( self)

sage: G = SO(3,GF(5))
sage: G._gap_init_()
'SO(0, 3, 5)'

_latex_( self)

sage: G = SO(3,GF(5))
sage: G._latex_()
'SO$(3, 5, 0)$'

_repr_( self)

sage: G = SO(3,GF(5))
sage: G
Special Orthogonal Group of degree 3, form parameter 0, over the Finite
Field of size 5

See About this document... for information on suggesting changes.