atlas  0.6
bruhat.h
Go to the documentation of this file.
1 
6 /*
7  This is bruhat.h
8 
9  Copyright (C) 2004,2005 Fokko du Cloux
10  part of the Atlas of Lie Groups and Representations
11 
12  For license information see the LICENSE file
13 */
14 
15 #ifndef BRUHAT_H /* guard against multiple inclusions */
16 #define BRUHAT_H
17 
18 #include "poset.h" // containment
19 
20 namespace atlas {
21 
22 /******** type declarations *************************************************/
23 
24 /******** function declarations *********************************************/
25 
26 /******** type definitions **************************************************/
27 
28 namespace bruhat {
29 
38 {
45  std::vector<set::EltList> d_hasse; // probably sparse; avoid |BitMap|s
53 
54  public:
55 
56 // constructors and destructors
57  explicit BruhatOrder(const std::vector<set::EltList>& Hasse_diagram)
58  : d_hasse(Hasse_diagram), d_poset(0) {}
59 
60 
61 // accessors
62 
63  size_t size() const { return d_hasse.size(); }
64 
66 
67  const set::EltList& hasse(size_t x) const {
68  return d_hasse[x];
69  }
70 
74  unsigned long n_comparable() const {
75  return poset::n_comparable_from_Hasse(d_hasse);
76  }
77 
78  // manipulators
82  const poset::Poset& poset() {
83  fillPoset(); return d_poset;
84  }
85 
86  private:
87  void fillPoset();
88 
89 }; // |class BruhatOrder|
90 
91 } // |namespace bruhat|
92 
93 } // |namespace atlas|
94 
95 #endif
const poset::Poset & poset()
Returns the full poset relation.
Definition: bruhat.h:82
BruhatOrder(const std::vector< set::EltList > &Hasse_diagram)
Definition: bruhat.h:57
poset::Poset d_poset
Poset relation.
Definition: bruhat.h:52
Intended to represent the Bruhat order on K orbits on G/B, or on a block of representations.
Definition: bruhat.h:37
Represents a poset by the matrix of order relations.
Definition: poset.h:39
void fillPoset()
Computes the full poset from the stored Hasse diagram.
Definition: bruhat.cpp:32
size_t size() const
Definition: bruhat.h:63
const set::EltList & hasse(size_t x) const
Returns row |x| of the Hasse diagram for the order.
Definition: bruhat.h:67
Definition: Atlas.h:38
std::vector< Elt > EltList
Definition: Atlas.h:53
unsigned long n_comparable_from_Hasse(const std::vector< set::EltList > &hasse)
Definition: poset.cpp:225
unsigned long n_comparable() const
Returns the number of comparable pairs in the order.
Definition: bruhat.h:74
std::vector< set::EltList > d_hasse
Hasse diagram for a Bruhat order.
Definition: bruhat.h:45