repthy
Class PSL3b

Object
  extended byAbstractCollection
      extended byAbstractSet
          extended byImmutableSet
              extended byGroup
                  extended byPSL3b
All Implemented Interfaces:
Collection, Set

public class PSL3b
extends Group

Special topics concerning PSL3(p) for a prime p. We produce most of the maximal subgroups, following a paper of Mitchell in Trans. AMS, vol. 12 (1911), 207-242.

As in PMatrixModp, we require 2 ≤ p ≤ 127.

This implementation is based on an AbstractSet that enumerates the group afresh every time it's needed. The features for conjugacy classes and character tables are suppressed (throw UnsupportedOperationException). By contrast, PSL3 extends HashGroup and is full-featured, but is more likely to lead to out-of-memory errors.

Author:
Mark McConnell

Field Summary
 
Fields inherited from class Group
charTable
 
Constructor Summary
PSL3b(int p)
           
 
Method Summary
 boolean contains(Object o)
           
 Set getConjClass(int i)
          Returns (a copy of) the i-th conjugacy class.
 int getConjClassIndex(GroupElt g)
          Returns i such that g is in the i-th conjugacy class.
 int getConjClassNum()
          Returns the number of conjugacy classes.
 Subgroup getHessianDiv216()
           
 Subgroup getNonSplitTorus()
          Returns a non-split torus, where the underlying subgroup is a C_n.
 Subgroup getNormalizerNonSplitTorus()
          Preserves a triangle in P2(p3), though not in P2(p), making cyclic permutations of the vertices.
 Subgroup getNormalizerSplitTorus()
          Preserves a triangle in P2(p), making all six permutations of the vertices.
 Subgroup getOrthogonalGroup(byte d)
          Returns the subgroup preserving the quadratic form {1,1,d} up to scalar multiples.
 Subgroup getParabolic12()
          The maximal parabolic subgroup fixing the point [1,0,0] in P2(p).
 Subgroup getParabolic21()
          The maximal parabolic subgroup fixing the line [x,y,0] in P2(p).
static Group getW(int p)
           
 Iterator iterator()
           
static void main(String[] args)
          Give it one argument, p.
 int size()
           
 
Methods inherited from class Group
cyclicSubgpsUpToConj, describeOrder8, elementarySubgps, fillInCharTable, getCenter, getCentralizer, getCharComparator, getCharTable, getCommutatorSubgroup, getCompositionSeries, getConjClassRep, getEltOrder, getEltOrder, getIdentity, getOrder, getProperNormalSubgroup, getSylow, isAbelian, isCentral, isSimple, isSubgroupOf, order, power, printTest, tableTest
 
Methods inherited from class ImmutableSet
add, addAll, clear, remove, removeAll, retainAll
 
Methods inherited from class AbstractSet
equals, hashCode
 
Methods inherited from class AbstractCollection
containsAll, isEmpty, toArray, toArray, toString
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface Set
containsAll, isEmpty, toArray, toArray
 

Constructor Detail

PSL3b

public PSL3b(int p)
Method Detail

getW

public static Group getW(int p)

size

public int size()

getConjClassNum

public int getConjClassNum()
Description copied from class: Group
Returns the number of conjugacy classes.

Specified by:
getConjClassNum in class Group

getConjClass

public Set getConjClass(int i)
Description copied from class: Group
Returns (a copy of) the i-th conjugacy class. The inverse operation is Group.getConjClassIndex(repthy.GroupElt).

Implementations may choose to return a SortedSet. If they do, code that needs to pick one element out of the conjugacy class will always pick the first. See Group.getConjClassRep(int).

It's recommended that the Set returned be unmodifiable.

Specified by:
getConjClass in class Group

getConjClassIndex

public int getConjClassIndex(GroupElt g)
Description copied from class: Group
Returns i such that g is in the i-th conjugacy class. The inverse operation is Group.getConjClass(int). May throw an exception if the argument is not in the group.

Specified by:
getConjClassIndex in class Group

iterator

public Iterator iterator()

contains

public boolean contains(Object o)

getParabolic12

public Subgroup getParabolic12()
The maximal parabolic subgroup fixing the point [1,0,0] in P2(p).


getParabolic21

public Subgroup getParabolic21()
The maximal parabolic subgroup fixing the line [x,y,0] in P2(p).


getNormalizerSplitTorus

public Subgroup getNormalizerSplitTorus()
Preserves a triangle in P2(p), making all six permutations of the vertices. Equivalently, the normalizer of the diagonal matrices in PSL3. "Split torus" means the diagonal matrices.


getNonSplitTorus

public Subgroup getNonSplitTorus()
Returns a non-split torus, where the underlying subgroup is a C_n.


getNormalizerNonSplitTorus

public Subgroup getNormalizerNonSplitTorus()
Preserves a triangle in P2(p3), though not in P2(p), making cyclic permutations of the vertices. Equivalently, the normalizer of a non-split torus in PSL3.


getOrthogonalGroup

public Subgroup getOrthogonalGroup(byte d)
Returns the subgroup preserving the quadratic form {1,1,d} up to scalar multiples. If d is not zero mod p and p > 2, the result should only depend on whether d is a quadratic residue mod p.


getHessianDiv216

public Subgroup getHessianDiv216()

main

public static void main(String[] args)
                 throws OrthonormalityException
Give it one argument, p.

Throws:
OrthonormalityException