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

atlas::dynkin::DynkinDiagram Class Reference

A Dynkin diagram of at most RANK_MAX vertices. More...

#include <dynkin.h>

List of all members.

Public Member Functions

 DynkinDiagram ()
 DynkinDiagram (const latticetypes::LatticeMatrix &)
 DynkinDiagram (const bitset::RankFlags &, const DynkinDiagram &)
 ~DynkinDiagram ()
int cartanEntry (size_t i, size_t j) const
bitset::RankFlags component (size_t) const
Multiplicity edgeMultiplicity (size_t i, size_t j) const
bitset::RankFlags extremities () const
bool isConnected () const
bool isSimplyLaced () const
bool isString () const
Edge labelEdge () const
Multiplicity maxMultiplicity () const
size_t node () const
size_t rank () const
const bitset::RankFlagsListstar () const
const bitset::RankFlagsstar (size_t j) const

Private Attributes

std::vector< bitset::RankFlagsd_star
std::map< Edge, Multiplicityd_label


Detailed Description

A Dynkin diagram of at most RANK_MAX vertices.

The collection of vertices is represented as vector, each of whose elements is a BitSet d_star[i], which regarded as a subset of the integers 0,1,...,RANK_MAX-1 gives the neighbours of vertex i. An Edge is a pair of indices designating vertices. The map d_label attaches to certain Edges an unsigned integer Multiplicity.

Definition at line 78 of file dynkin.h.


Constructor & Destructor Documentation

atlas::dynkin::DynkinDiagram::DynkinDiagram  )  [inline]
 

Definition at line 97 of file dynkin.h.

atlas::dynkin::DynkinDiagram::DynkinDiagram const latticetypes::LatticeMatrix c  )  [explicit]
 

Constructs a Dynkin diagram from a Cartan matrix. The edge points from i to j when the Cartan matrix entry c(i,j) is < -1 (i.e. towards the shorter root.)

Definition at line 64 of file dynkin.cpp.

References d_label, d_star, atlas::dynkin::Edge, atlas::latticetypes::LatticeMatrix, atlas::matrix::Matrix< C >::numColumns(), and atlas::matrix::Matrix< C >::numRows().

atlas::dynkin::DynkinDiagram::DynkinDiagram const bitset::RankFlags c,
const DynkinDiagram d
 

Constructs the restriction of |d| to the subset of the vertices flagged by |c|.

Definition at line 83 of file dynkin.cpp.

References atlas::bitset::BitSet< n >::begin(), atlas::bitset::BitSet< n >::count(), d_label, d_star, atlas::dynkin::Edge, atlas::bitset::BitSet< n >::position(), atlas::bitset::RankFlags, atlas::bitset::BitSet< n >::slice(), star(), and atlas::bitset::BitSet< n >::test().

atlas::dynkin::DynkinDiagram::~DynkinDiagram  )  [inline]
 

Definition at line 103 of file dynkin.h.


Member Function Documentation

int atlas::dynkin::DynkinDiagram::cartanEntry size_t  i,
size_t  j
const
 

Definition at line 117 of file dynkin.cpp.

References d_label, atlas::dynkin::Edge, and star().

bitset::RankFlags atlas::dynkin::DynkinDiagram::component size_t  j  )  const
 

Returns the component of vertex #j in the diagram.

The algorithm is to start with j, and to construct "shells" from there, by taking each new shell to be the elements of the union of the stars of the old shell, that were not already considered.

Definition at line 135 of file dynkin.cpp.

References atlas::bitset::BitSet< n >::andnot(), atlas::bitset::BitSet< n >::any(), d_star, RankFlags, and atlas::bitset::RankFlags.

Referenced by atlas::interpreter::check_involution(), atlas::dynkin::components(), and atlas::cartanclass::CartanClass::makeSimpleComplex().

Multiplicity atlas::dynkin::DynkinDiagram::edgeMultiplicity size_t  i,
size_t  j
const [inline]
 

Definition at line 111 of file dynkin.h.

References atlas::dynkin::Multiplicity.

bitset::RankFlags atlas::dynkin::DynkinDiagram::extremities  )  const
 

Synopsis : returns the subset of the vertices which are extremities of the graph (i.e. whose star has zero or one element).

Definition at line 151 of file dynkin.cpp.

References d_star, RankFlags, atlas::bitset::RankFlags, and atlas::bitset::BitSet< n >::set().

Referenced by atlas::irreducibleType(), atlas::typeANormalize(), atlas::typeDNormalize(), and atlas::typeENormalize().

bool atlas::dynkin::DynkinDiagram::isConnected  )  const
 

bool atlas::dynkin::DynkinDiagram::isSimplyLaced  )  const
 

bool atlas::dynkin::DynkinDiagram::isString  )  const
 

Edge atlas::dynkin::DynkinDiagram::labelEdge  )  const
 

Synopsis : returns the multiple edge of d.

Precondition : d is irreducible and not simply laced;

NOTE : if d is not simply laced but not irreducible, will return the first multiple edge of d. There is guaranteed to be only one if d is irreducible.

Definition at line 170 of file dynkin.cpp.

References d_label, and atlas::dynkin::Edge.

Referenced by atlas::irreducibleType(), atlas::typeBNormalize(), atlas::typeCNormalize(), atlas::typeFNormalize(), and atlas::typeGNormalize().

Multiplicity atlas::dynkin::DynkinDiagram::maxMultiplicity  )  const
 

Synopsis : returns the largest multiplicity in the graph.

NOTE : we return 1 when there are no labelled edges, even when there are no edges at all!

Definition at line 187 of file dynkin.cpp.

References d_label, and atlas::dynkin::Multiplicity.

Referenced by atlas::irreducibleType().

size_t atlas::dynkin::DynkinDiagram::node  )  const
 

Synopsis : returns the node of the graph.

Precondition : the graph is irreducible, of type D or E;

NOTE : behaviour is undefined if the graph does not have a node (the return value is -1 in this case). If the graph has more than one node, it will return the first of them.

Definition at line 212 of file dynkin.cpp.

References d_star.

Referenced by atlas::irreducibleType(), atlas::typeDNormalize(), and atlas::typeENormalize().

size_t atlas::dynkin::DynkinDiagram::rank  )  const [inline]
 

Definition at line 128 of file dynkin.h.

Referenced by atlas::dynkin::bourbaki(), atlas::dynkin::components(), atlas::irreducibleType(), atlas::dynkin::lieType(), atlas::cartanclass::CartanClass::makeSimpleComplex(), atlas::dynkin::normalize(), atlas::typeANormalize(), atlas::typeBNormalize(), atlas::typeCNormalize(), atlas::typeDNormalize(), and atlas::typeENormalize().

const bitset::RankFlags& atlas::dynkin::DynkinDiagram::star size_t  j  )  const [inline]
 

Definition at line 136 of file dynkin.h.

References atlas::bitset::RankFlags.

const bitset::RankFlagsList& atlas::dynkin::DynkinDiagram::star  )  const [inline]
 

Definition at line 132 of file dynkin.h.

Referenced by cartanEntry(), DynkinDiagram(), atlas::irreducibleType(), atlas::typeANormalize(), atlas::typeBNormalize(), atlas::typeCNormalize(), atlas::typeDNormalize(), atlas::typeENormalize(), and atlas::typeFNormalize().


Member Data Documentation

std::map<Edge,Multiplicity> atlas::dynkin::DynkinDiagram::d_label [private]
 

Map from certain pairs of vertices (multiple edges of the Dynkin diagram) to unsigned integers (their multiplicities).

Definition at line 91 of file dynkin.h.

Referenced by cartanEntry(), DynkinDiagram(), labelEdge(), and maxMultiplicity().

std::vector<bitset::RankFlags> atlas::dynkin::DynkinDiagram::d_star [private]
 

Adjacency relations: d_star[i].test(j) tells whether i and j are neighbors

Definition at line 85 of file dynkin.h.

Referenced by component(), DynkinDiagram(), extremities(), and node().


The documentation for this class was generated from the following files:
Generated on Wed Mar 26 16:52:25 2008 for atlas by  doxygen 1.3.9.1