repthy
Class ProductGroup

Object
  extended byAbstractCollection
      extended byAbstractSet
          extended byImmutableSet
              extended byGroup
                  extended byHashGroup
                      extended byProductGroup
All Implemented Interfaces:
Collection, Set
Direct Known Subclasses:
ProductGroupInternal

public class ProductGroup
extends HashGroup

A direct product G1 × G2 of two Groups.

Author:
Mark McConnell

Field Summary
 
Fields inherited from class Group
charTable
 
Constructor Summary
ProductGroup(Group factor1, Group factor2)
           
 
Method Summary
protected  void fillInCharTable()
          Takes the characters currently in the character tables of the factors, pull them back to the product, takes all the tensor products of the pullbacks, and puts them in the character table of the product.
protected  Comparator getCharComparator()
          The characters of a ProductGroup always appear in lexicograhic order based on the order of the characters for the factors.
 Group getFactor1()
           
 Group getFactor2()
           
 Homomorphism getProductMorphism(Homomorphism f1, Homomorphism f2)
          Fills in the dotted arrow in the diagram that defines "direct product" in the category of groups.
 Homomorphism getProjection1()
          The canonical projection map from G1 × G2 to G1.
 Homomorphism getProjection2()
          The canonical projection map from G1 × G2 to G2.
static Group iteratedProduct(List list)
          Returns the iterated product of the Groups G1 through Gk making up the given List.
static void main(String[] args)
          Tests the product of C_n's whose orders are specified by the arguments.
 String toString()
           
 
Methods inherited from class HashGroup
contains, getConjClass, getConjClassIndex, getConjClassNum, iterator, size
 
Methods inherited from class Group
cyclicSubgpsUpToConj, describeOrder8, elementarySubgps, getCenter, getCentralizer, 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
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface Set
containsAll, isEmpty, toArray, toArray
 

Constructor Detail

ProductGroup

public ProductGroup(Group factor1,
                    Group factor2)
Method Detail

iteratedProduct

public static Group iteratedProduct(List list)
Returns the iterated product of the Groups G1 through Gk making up the given List. It is a ProductGroup of the following form:

G1 × (G2 × (G3 × ... × Gk)).

If there is only one group G1, it is returned directly. If the List is empty, null is returned.


getFactor1

public final Group getFactor1()

getFactor2

public final Group getFactor2()

getProjection1

public Homomorphism getProjection1()
The canonical projection map from G1 × G2 to G1.


getProjection2

public Homomorphism getProjection2()
The canonical projection map from G1 × G2 to G2.


getProductMorphism

public Homomorphism getProductMorphism(Homomorphism f1,
                                       Homomorphism f2)
Fills in the dotted arrow in the diagram that defines "direct product" in the category of groups.

Parameters:
f1 - A homomorphism from some group A to G1.
f2 - A homomorphism from A to G2.
Returns:
The product morphism from A to G1 × G2.
Throws:
IllegalArgumentException - If the A's are not the same, or the G's are not those of this product group.

fillInCharTable

protected void fillInCharTable()
                        throws OrthonormalityException
Takes the characters currently in the character tables of the factors, pull them back to the product, takes all the tensor products of the pullbacks, and puts them in the character table of the product.

Overrides:
fillInCharTable in class Group
Throws:
OrthonormalityException - If the table isn't full at the end, or if anything goes wrong in the middle.

getCharComparator

protected Comparator getCharComparator()
The characters of a ProductGroup always appear in lexicograhic order based on the order of the characters for the factors.

Overrides:
getCharComparator in class Group

toString

public String toString()

main

public static void main(String[] args)
Tests the product of C_n's whose orders are specified by the arguments.