repthy
Class HeckeAlgebra

Object
  extended byHeckeAlgebra
Direct Known Subclasses:
HeckeAlg_GL_B, HeckeAlg_GL_U, HeckeAlg_PGL_U

public abstract class HeckeAlgebra
extends Object

The Hecke algebra HZ(G, H) for the double-coset space H\G/H.

Subclasses must call init() at the end of their constructors.

G should be small enough that all its elements can be stored in memory at the same time. For instance, it's probably okay if G is a HashGroup.

Author:
Mark McConnell

Field Summary
protected  GroupElt[] dblCosetReps
          Caches the result of makeDblCosetReps().
protected  HashSet[] dblCosets
          Caches the double cosets H gi H, where gi = dblCosetReps[i].
protected  Subgroup GH
          Caches the result of makeSubgroup().
 
Constructor Summary
HeckeAlgebra()
           
 
Method Summary
 int getDblCosetCount()
          Returns the number of double cosets in H\G/H, which is the same as the Z-rank of the algebra.
 int getDblCosetIndex(GroupElt g)
          Returns i such that the argument is in the i-th double coset.
 GroupElt[] getDblCosetReps()
          Returns a clone of the array of double-coset representatives provided by makeDblCosetReps().
 Subgroup getSubgroup()
          Returns the subgroup (G, H).
protected  void init()
          Any subclass must call this at the end of its constructors.
protected abstract  GroupElt[] makeDblCosetReps()
          Returns an array of double-coset representatives for H\G/H.
protected abstract  Subgroup makeSubgroup()
          Returns the subgroup (G, H).
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GH

protected Subgroup GH
Caches the result of makeSubgroup().


dblCosetReps

protected GroupElt[] dblCosetReps
Caches the result of makeDblCosetReps().


dblCosets

protected HashSet[] dblCosets
Caches the double cosets H gi H, where gi = dblCosetReps[i].

Constructor Detail

HeckeAlgebra

public HeckeAlgebra()
Method Detail

makeSubgroup

protected abstract Subgroup makeSubgroup()
Returns the subgroup (G, H). Will only be called once, by the constructor. To access the information, use getSubgroup() instead of this method.


makeDblCosetReps

protected abstract GroupElt[] makeDblCosetReps()
Returns an array of double-coset representatives for H\G/H. These correspond to generators of the Hecke algebra as Z-module. Will only be called once, by the constructor. To access the information, use getDblCosetReps() instead of this method.


init

protected void init()
Any subclass must call this at the end of its constructors.


getDblCosetCount

public final int getDblCosetCount()
Returns the number of double cosets in H\G/H, which is the same as the Z-rank of the algebra.


getDblCosetReps

public GroupElt[] getDblCosetReps()
Returns a clone of the array of double-coset representatives provided by makeDblCosetReps(). These correspond to generators of the Hecke algebra as Z-module.


getSubgroup

public final Subgroup getSubgroup()
Returns the subgroup (G, H).


getDblCosetIndex

public int getDblCosetIndex(GroupElt g)
Returns i such that the argument is in the i-th double coset. Returns -1 if the argument is not found.