Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

/home/r0/dav/atlas.dir/atlas3/sources/gkmod/kl.cpp File Reference

Implementation of the class KLContext. More...

#include "kl.h"
#include <cassert>
#include <map>
#include <stack>
#include <stdexcept>
#include "bitmap.h"
#include "basic_io.h"
#include "blocks.h"
#include "error.h"
#include "hashtable.h"
#include "kl_error.h"
#include "prettyprint.h"

Include dependency graph for kl.cpp:

Include dependency graph

Go to the source code of this file.

Namespaces

namespace  atlas
namespace  atlas::kl
namespace  atlas::kl::helper

Classes

class  atlas::kl::KLPolEntry
class  atlas::kl::helper::Helper
class  atlas::kl::helper::Thicket
 Collection of block elements y_j of the same length, differing by type II real cross actions, and having no other descents. More...
struct  atlas::kl::helper::Thicket::Edge
 Pair (y , s x y) (with s type II real) in a Thicket. More...
class  atlas::kl::helper::ThicketIterator

Typedefs

typedef hashtable::HashTable<
KLPolEntry, KLIndex
KLHashStore

Functions

size_t firstAscent (const descents::DescentStatus &, const descents::DescentStatus &, size_t)
 Returns the first s that is an ascent for d1, and a descent for d2; rank if there is none such.
size_t goodAscent (const descents::DescentStatus &, const descents::DescentStatus &, size_t)
 Returns the first s that is a non-ImaginaryTypeII ascent for d1, and a descent for d2; rank if there is none such.
void wGraph (wgraph::WGraph &wg, const KLContext &klc)
 Puts in wg the W-graph for this block.


Detailed Description

Implementation of the class KLContext.

This module contains code for the computation of the Kazhdan-Lusztig polynomials for a given block of representations. We have taken the radical approach of not using the Bruhat ordering at all, just ordering by length instead, and coping with the ensuing appearance of zero polynomials. It is expected that the simplification thus achieved will more than outweigh the additional polynomials computed.

The general scheme is fairly similar to the one in Coxeter: there is a "KLSupport" structure, that holds the list of primitive pairs that makes it possible to read the d_kl list, plus some additional lists that allow for a fast primitivization algorithm, for instance; there are two main lists, d_kl (filled in for all primitive pairs), and d_mu (filled in only for non-zero mu coefficients.)

Definition in file kl.cpp.


Typedef Documentation

typedef hashtable::HashTable<KLPolEntry,KLIndex> atlas::kl::helper::KLHashStore
 

Definition at line 112 of file kl.cpp.


Function Documentation

size_t atlas::kl::helper::firstAscent const descents::DescentStatus &  d1,
const descents::DescentStatus &  d2,
size_t  rank
 

Returns the first s that is an ascent for d1, and a descent for d2; rank if there is none such.

Precondition: rank is the number of valid fields in d1 and d2.

Definition at line 2133 of file kl.cpp.

Referenced by atlas::kl::helper::Thicket::ascentCompute(), atlas::kl::helper::Thicket::nonExtremal(), atlas::kl::helper::Helper::type2Mu(), and atlas::kl::helper::Helper::writeRow().

size_t atlas::kl::helper::goodAscent const descents::DescentStatus &  d1,
const descents::DescentStatus &  d2,
size_t  rank
 

Returns the first s that is a non-ImaginaryTypeII ascent for d1, and a descent for d2; rank if there is none such.

Precondition: rank is the number of valid fields in d1 and d2.

Definition at line 2155 of file kl.cpp.

void atlas::kl::wGraph wgraph::WGraph &  wg,
const KLContext &  klc
 

Puts in wg the W-graph for this block.

Explanation: the W-graph is a graph with one vertex for each element of the block; the corresponding descent set is the tau-invariant, i.e. the set of generators s that are either complex descents, real type I or II, or imaginary compact. Let x < y in the block such that mu(x,y) != 0, and descent(x) != descent(y). Then there is an edge from x to y unless descent(x) is contained in descent(y), and an edge from y to x unless descent(y) is contained in descent(x). Note that the latter containment always holds when the length difference is > 1, so that in that case there will only be an edge from x to y (the edge must be there because we already assumed that the descent sets were not equal.) In both cases, the coefficient corresponding to the edge is mu(x,y).

NOTE: if I'm not mistaken, the edgelists come already out sorted.

Definition at line 2072 of file kl.cpp.

References atlas::wgraph::WGraph::coeffList(), atlas::wgraph::WGraph::descent(), atlas::kl::KLContext::descentSet(), atlas::wgraph::WGraph::edgeList(), atlas::kl::KLContext::length(), atlas::kl::MuCoeff, atlas::kl::KLContext::muRow(), atlas::kl::MuRow, RankFlags, atlas::wgraph::WGraph::reset(), atlas::wgraph::WGraph::resize(), and atlas::kl::KLContext::size().


Generated on Wed Mar 26 16:49:52 2008 for atlas by  doxygen 1.3.9.1