repthy
Class GpCharacter

Object
  extended byClassFunction
      extended byGpCharacter

public class GpCharacter
extends ClassFunction

The character of a complex representation of the Group G, or an element of the Z-lattice generated by such characters (a virtual character).

In practice, the difference between a GpCharacter and a ClassFunction is that the inner product of two GpCharacters belongs to Z. We therefore assume that rounding the product off to the nearest int or long gives the correct value. There is no error-checking in this regard.

Operations that combine two characters will throw an IllegalArgumentException if the underlying groups aren't equal.

Author:
Mark McConnell

Field Summary
static int COMPLEX
          Return value for getRealType().
static Comparator NORM
          Assumes the arguments are GpCharacters on the same group, and sorts them in ascending order of normSqInt().
static int QUATERNIONIC
          Return value for getRealType().
static int REAL
          Return value for getRealType().
static int REGULAR
          Used with the (Group, int) constructor to construct the character of the regular representation.
static int SIGN
          When the group is a PermGp, is used with the (Group, int) constructor to construct the character that's 1 or -1 according to the sign of the permutation.
static int STANDARD
          When the group is a PermGp, is used with the (Group, int) constructor to construct the character of the standard representation (the underlying permutation representation minus the identity).
static int TRIVIAL
          Used with the (Group, int) constructor to construct the trivial character.
static int ZERO
          Used with the (Group, int) constructor to construct the zero character.
 
Constructor Summary
GpCharacter(Group G, Complex[] val, int cycloField)
          Constructs the character on G whose value on the i-th conjugacy class (as returned by Group.getConjClass(int)) is val[i].
GpCharacter(Group G, Complex[] val, int cycloField, String name)
          Same as the three-argument constructor, but allows the user to specify the name.
GpCharacter(Group G, int type)
          Constructs the specified character on G.
 
Method Summary
 GpCharacter dual()
          The character of the dual of the representation for this.
 boolean equals(Object o)
           
 int getCycloField()
          Returns an m ≥ 1 such that all values of this character lie in the cyclotomic field Qm) of m-th roots of unity.
 int getDegree()
          Returns the degree of the representation associated to this character.
 Subgroup getKernel()
          Returns (G, H), where H is the set of elements of G that map to the identity under the representation associated to this character.
 String getName()
           
 int getRealType()
          Returns REAL if the (complex) representation associated to this character is a real representation tensored with C, QUATERNIONIC if it is quaternionic (has a G-invariant conjugate-linear automorphism J with J^2 = -I), and COMPLEX otherwise.
 int hashCode()
           
 boolean isIrreducible()
           
 boolean isZero()
           
 GpCharacter minus(GpCharacter chi)
          Returns this - chi.
 int normSqInt()
          Rounds ClassFunction.normSq() to the nearest int.
 long normSqLong()
          Rounds ClassFunction.normSq() to the nearest long.
 void setName(String name)
           
 GpCharacter sum(GpCharacter chi)
          The character of the direct sum of the representations for this and for chi.
 GpCharacter sumTimes(int n)
          The character of the representation for this direct-summed with itself n times.
 GpCharacter sym2()
          The character of the second symmetric power of the representation for this.
 GpCharacter tensor(GpCharacter chi)
          The character of the tensor product of the representations for this and for chi.
 String toString()
          Returns w - k*v with k chosen to make the difference as short as possible.
 GpCharacter wedge2()
          The character of the second exterior power of the representation for this.
 
Methods inherited from class ClassFunction
apply, conjugate, getGroup, getValue, innerProduct, minus, normSq, sum, times, times
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

TRIVIAL

public static final int TRIVIAL
Used with the (Group, int) constructor to construct the trivial character.

See Also:
Constant Field Values

REGULAR

public static final int REGULAR
Used with the (Group, int) constructor to construct the character of the regular representation.

See Also:
Constant Field Values

SIGN

public static final int SIGN
When the group is a PermGp, is used with the (Group, int) constructor to construct the character that's 1 or -1 according to the sign of the permutation.

See Also:
Constant Field Values

STANDARD

public static final int STANDARD
When the group is a PermGp, is used with the (Group, int) constructor to construct the character of the standard representation (the underlying permutation representation minus the identity).

See Also:
Constant Field Values

ZERO

public static final int ZERO
Used with the (Group, int) constructor to construct the zero character.

See Also:
Constant Field Values

REAL

public static final int REAL
Return value for getRealType().

See Also:
Constant Field Values

COMPLEX

public static final int COMPLEX
Return value for getRealType().

See Also:
Constant Field Values

QUATERNIONIC

public static final int QUATERNIONIC
Return value for getRealType().

See Also:
Constant Field Values

NORM

public static final Comparator NORM
Assumes the arguments are GpCharacters on the same group, and sorts them in ascending order of normSqInt().

Constructor Detail

GpCharacter

public GpCharacter(Group G,
                   Complex[] val,
                   int cycloField)
Constructs the character on G whose value on the i-th conjugacy class (as returned by Group.getConjClass(int)) is val[i]. The argument val is cloned.

Parameters:
cycloField - An m ≥ 1 such that all values of this character lie in the cyclotomic field Qm) of m-th roots of unity. They may actually lie in a subfield of this field.
Throws:
IllegalArgumentException - if val.length isn't equal to the number of conjugacy classes.

GpCharacter

public GpCharacter(Group G,
                   Complex[] val,
                   int cycloField,
                   String name)
Same as the three-argument constructor, but allows the user to specify the name.

Parameters:
name - A short name for a row in a character table.

GpCharacter

public GpCharacter(Group G,
                   int type)
Constructs the specified character on G.

Parameters:
type - One of the int constants in this class: TRIVIAL, etc.
Throws:
IllegalArgumentException - If SIGN or STANDARD is used when G is not a PermGp.
Method Detail

getName

public final String getName()

setName

public final void setName(String name)
Parameters:
name - A short name for a row in a character table.

getCycloField

public final int getCycloField()
Returns an m ≥ 1 such that all values of this character lie in the cyclotomic field Qm) of m-th roots of unity. They may actually lie in a subfield of this field. Odd m are replaced with 2m, because Q(-1) = Q, Q6) = Q3), etc.


normSqInt

public int normSqInt()
Rounds ClassFunction.normSq() to the nearest int.


normSqLong

public long normSqLong()
Rounds ClassFunction.normSq() to the nearest long.


isIrreducible

public boolean isIrreducible()

isZero

public boolean isZero()

equals

public boolean equals(Object o)

hashCode

public int hashCode()

getDegree

public int getDegree()
Returns the degree of the representation associated to this character.


getKernel

public Subgroup getKernel()
Returns (G, H), where H is the set of elements of G that map to the identity under the representation associated to this character.


getRealType

public int getRealType()
Returns


sum

public GpCharacter sum(GpCharacter chi)
The character of the direct sum of the representations for this and for chi. Compare ClassFunction.sum(repthy.ClassFunction).


minus

public GpCharacter minus(GpCharacter chi)
Returns this - chi. Compare ClassFunction.minus(repthy.ClassFunction).


sumTimes

public GpCharacter sumTimes(int n)
The character of the representation for this direct-summed with itself n times. Compare ClassFunction.times(int).


tensor

public GpCharacter tensor(GpCharacter chi)
The character of the tensor product of the representations for this and for chi. Compare ClassFunction.times(ClassFunction).


dual

public GpCharacter dual()
The character of the dual of the representation for this. Compare ClassFunction.conjugate().


wedge2

public GpCharacter wedge2()
The character of the second exterior power of the representation for this.


sym2

public GpCharacter sym2()
The character of the second symmetric power of the representation for this.


toString

public String toString()
Returns w - k*v with k chosen to make the difference as short as possible. Returns null if it can't return a vector shorter than w.

Overrides:
toString in class ClassFunction