|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
ObjectAbstractCollection
AbstractSet
ImmutableSet
Group
A Group is a Set of GroupElts
satisfying the group axioms--existence of an identity element and
closure under GroupElt.mult(repthy.GroupElt) and GroupElt.inverse().
The groups in this package are finite.
In this implementation, a Group is an ImmutableSet--elements can't be added or removed once the group
is instantiated. The class implements the Set interface,
but the modify methods from that interface will throw a
java.lang.UnsupportedOperationException. Subclasses
inherit this immutability.
A subclass of Group only needs to implement the
following methods.
AbstractCollection.iterator().
AbstractCollection.size().
getConjClassNum().
getConjClass(int).
getConjClassIndex(GroupElt).
AbstractCollection.contains(Object).
| Field Summary | |
protected CharTable |
charTable
Should be accessed by getCharTable(), not directly,
because the method makes sure to fill in the table the first
time. |
| Constructor Summary | |
Group()
|
|
| Method Summary | |
Enumeration |
cyclicSubgpsUpToConj()
Returns an Enumeration of the cyclic subgroups of this group, up to conjugacy. |
String |
describeOrder8()
If this group has order 8, returns a String describing it, like "D_2*4" or "C_8". |
Enumeration |
elementarySubgps()
Returns an Enumeration of all of this group's maximal elementary subgroups, up to conjugacy. |
protected void |
fillInCharTable()
Fills in the character table. |
Subgroup |
getCenter()
Returns the center of this group. |
Subgroup |
getCentralizer(GroupElt g)
Returns the centralizer of g in this group. |
protected Comparator |
getCharComparator()
Returns a Comparator that sorts GpCharacters by the
degree. |
CharTable |
getCharTable()
Returns the character table, filling it in automatically the first time. |
Subgroup |
getCommutatorSubgroup()
Returns (G, [G,G]). |
List |
getCompositionSeries()
Returns a composition series for this group G as a descending list of normal subgroups. |
abstract Set |
getConjClass(int i)
Returns (a copy of) the i-th conjugacy class. |
abstract int |
getConjClassIndex(GroupElt g)
Returns i such that g is in the i-th
conjugacy class. |
abstract int |
getConjClassNum()
Returns the number of conjugacy classes. |
GroupElt |
getConjClassRep(int i)
Returns some element of the i-th conjugacy class.
|
static int |
getEltOrder(GroupElt g,
Group G)
Finds the order of the element g.
|
static int |
getEltOrder(GroupElt g,
int N,
int[][] fac)
Finds the order of the element g.
|
GroupElt |
getIdentity()
Returns a GroupElt that is the identity for this group,
up to GroupElt.equals(java.lang.Object). |
int |
getOrder()
The order of this group, that is, the number of its elements. |
Subgroup |
getProperNormalSubgroup()
Returns a normal subgroup properly containing {1} and properly contained in this group, or return nulls if such a normal subgroup doesn't exist. |
Subgroup |
getSylow(int p)
Returns one of the Sylow p-subgroups of this group, as a Subgroup in which the underlying subgroup is a PGroup. |
boolean |
isAbelian()
|
boolean |
isCentral(GroupElt g)
Whether the argument is in the center of this group. |
boolean |
isSimple()
Whether this group is simple. |
boolean |
isSubgroupOf(Group G1)
Whether this is a subgroup of G1. |
int |
order()
The order of the group, that is, the number of its elements. |
static GroupElt |
power(GroupElt g,
int i)
Returns the i-th power of g. |
static void |
printTest(Group G)
Prints all (yes, all) the elements and conjugacy classes to standard output. |
static void |
tableTest(Group G,
String nameG)
For testing; displays the character table in a window and decomposes some sample representations. |
| Methods inherited from class ImmutableSet |
add, addAll, clear, remove, removeAll, retainAll |
| Methods inherited from class AbstractSet |
equals, hashCode |
| Methods inherited from class AbstractCollection |
contains, containsAll, isEmpty, iterator, size, toArray, toArray, toString |
| Methods inherited from class Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface Set |
contains, containsAll, isEmpty, iterator, size, toArray, toArray |
| Field Detail |
protected CharTable charTable
getCharTable(), not directly,
because the method makes sure to fill in the table the first
time.
| Constructor Detail |
public Group()
| Method Detail |
public abstract int getConjClassNum()
public abstract Set getConjClass(int i)
i-th conjugacy class. The
inverse operation is 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 getConjClassRep(int).
It's recommended that the Set returned be unmodifiable.
public abstract int getConjClassIndex(GroupElt g)
g is in the i-th
conjugacy class. The inverse operation is getConjClass(int). May throw an exception if the argument is not
in the group.
public GroupElt getConjClassRep(int i)
i-th conjugacy class.
If the conjugacy class is a SortedSet, the first element is
always returned. Otherwise, an unspecified element is
returned. The argument must satisfy 0 ≤ i <
the value of getConjClassNum().
public GroupElt getIdentity()
GroupElt that is the identity for this group,
up to GroupElt.equals(java.lang.Object).
public int order()
public int getOrder()
order().
public static int getEltOrder(GroupElt g,
Group G)
g.
If code needs to compute the order for many elements of a
fixed group, getEltOrder(GroupElt, int, int[][])
may be more efficient.
G - Should be a group containing g, or null
if such a G isn't available. In the first case,
we use an efficient algorithm from one of the early sections of
Cohen. Otherwise we use a simple linear search.
public static int getEltOrder(GroupElt g,
int N,
int[][] fac)
g.
This method is recommended when N and
fac (described below) are fixed for many different
g's. getEltOrder(GroupElt, Group) is the
basic version.
N - A number that's known to be a positive factor of the order of
g. Typically N is the order of a
group containing g.fac - Must be the prime factorization of N,
as computed by NumThy.factor(int).
public static GroupElt power(GroupElt g,
int i)
g. Uses a
squaring algorithm.
public Subgroup getCentralizer(GroupElt g)
g in this group. The
subgroup will be a HashGroup.
public boolean isAbelian()
public Subgroup getCenter()
AbelianGroup.
public boolean isCentral(GroupElt g)
public Subgroup getCommutatorSubgroup()
HashGroup.
public boolean isSubgroupOf(Group G1)
this is a subgroup of G1.
public Subgroup getSylow(int p)
Subgroup in which the underlying subgroup is a PGroup.
IllegalArgumentException - If p is not prime.public CharTable getCharTable()
protected void fillInCharTable()
throws OrthonormalityException,
PariNotFoundException
getCharTable() the first time it's needed.
The algorithm here fills out the table completely, through
subclasses may want to override it. Implementors may assume
charTable is not null and initially contains no
characters, because getCharTable() takes care of that
before the present method is called. They should feel free to
throw OrthonormalityExceptions, because getCharTable() will catch them and print the error messages.
OrthonormalityException - If the table isn't full at
the end, or if anything goes wrong in the middle.
PariNotFoundExceptionpublic Enumeration cyclicSubgpsUpToConj()
Subgroup
whose underlying subgroup is a C_n.
public Enumeration elementarySubgps()
PGroup
and C_n, respectively, and the product is of class
ProductGroupInternal. Only the maximal P
× C are returned.
(We do not return a Subgroup (this, P ×
C), because the elements p × c
don't belong to this; only pc belong
to this.)
protected Comparator getCharComparator()
GpCharacters by the
degree. Subclasses may choose to override this, or to return
null if they don't want sorting.
public Subgroup getProperNormalSubgroup()
public boolean isSimple()
public List getCompositionSeries()
List of Subgroups
((Gk, Gk-1),
(Gk-1, Gk-2), ...,
(G1, G0))
where Gk = G, G0 = {1}, and Gi-1 is a normal subgroup of Gi with simple quotient.
public String describeOrder8()
public static void printTest(Group G)
public static void tableTest(Group G,
String nameG)
throws OrthonormalityException
G - The group.nameG - A name for G in the title of the character table.
OrthonormalityException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||