21.17 Orthogonal Linear Groups

Module: sage.groups.matrix_gps.orthogonal

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.

Author Log:

Module-level Functions

GO( n, R, [e=0])
Return the general orthogonal group.

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

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: 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: invariant_quadratic_form

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: _gap_init_,$  $ _latex_,$  $ _repr_

_gap_init_( self)

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

_latex_( self)

sage: G = GO(3,GF(5))
sage: latex(G)
	ext{GO}_{3}(5, 0)

_repr_( self)
String representation of self.

sage: GO(3,7)
General Orthogonal Group of degree 3, form parameter 0, over the Finite
Field of size 7

Class: OrthogonalGroup

class OrthogonalGroup
OrthogonalGroup( self, n, R, [e=0], [var=a])
INPUT:
            n -- the degree
            R -- the base ring
            e -- a parameter for orthogonal groups only depending
                 on the invariant form
            var -- variable used to define field of definition of 
                   actual matrices in this group.

Functions: invariant_form

invariant_form( self)
Return the invariant form of this orthogonal group.

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

sage: G = SO( 4, GF(7), 1)
sage: G.invariant_form()
1

Class: SpecialOrthogonalGroup_finite_field

class SpecialOrthogonalGroup_finite_field

Class: SpecialOrthogonalGroup_generic

class SpecialOrthogonalGroup_generic

       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()
       [4 2 5 6]
[0 3 2 4]
[5 3 5 2]
[1 1 6 2]

Functions: invariant_quadratic_form

invariant_quadratic_form( self)
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.

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: _gap_init_,$  $ _latex_,$  $ _repr_

_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: latex(G)
	ext{SO}_{3}(\mathbf{F}_{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.