Module: sage.groups.matrix_gps.orthogonal
Orthogonal Linear Groups
Paraphrased from the GAP manual: The general orthogonal group
consists of those
matrices over the field
that respect a non-singular quadratic form specified by
. (Use the GAP command InvariantQuadraticForm to determine this
form explicitly.) The value of
must be 0
for odd
(and can
optionally be omitted in this case), respectively one of
or
for even
.
SpecialOrthogonalGroup returns a group isomorphic to the special
orthogonal group
, which is the subgroup of all those
matrices in the general orthogonal group that have determinant one.
(The index of
in
is
if
is odd,
but
if
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
n, R, [e=0]) |
Return the general orthogonal group.
n, R, [e=0], [var=a]) |
Return the special orthogonal group of degree
over the ring
.
Input:
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_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_element() [5 1 4] [1 0 0] [6 0 1]
Functions: invariant_quadratic_form
self) |
This wraps GAP's command "InvariantQuadraticForm". From the GAP documentation:
Input:
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_
self) |
sage: GO( 3, GF(7), 0)._gap_init_() 'GO(0, 3, 7)'
self) |
sage: G = GO(3,GF(5)) sage: latex(G) ext{GO}_{3}(5, 0)
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
self, n, R, [e=0], [var=a]) |
Input:
Functions: 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
Special Functions: __init__
Class: SpecialOrthogonalGroup_finite_field
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_element() [1 2 5 0] [2 2 1 0] [1 3 1 5] [1 3 1 3]
Functions: invariant_quadratic_form
self) |
Return the quadratic form
on the space on which this group
that satisfies the equation
for all
and
.
NOTE: Uses GAP's command InvariantQuadraticForm.
Output:
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_
self) |
sage: G = SO(3,GF(5)) sage: G._gap_init_() 'SO(0, 3, 5)'
self) |
sage: G = SO(3,GF(5)) sage: latex(G) ext{SO}_{3}(\mathbf{F}_{5}, 0)
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.