atlas
0.6
|
#include <blocks.h>
Classes | |
struct | block_fields |
struct | EltInfo |
Public Member Functions | |
Block_base (const KGB &kgb, const KGB &dual_kgb) | |
Block_base (unsigned int rank) | |
virtual | ~Block_base () |
Block_base (const Block_base &b) | |
size_t | rank () const |
size_t | folded_rank () const |
size_t | size () const |
virtual KGBElt | xsize () const =0 |
virtual KGBElt | ysize () const =0 |
const DynkinDiagram & | Dynkin () const |
ext_gen | orbit (weyl::Generator s) const |
const std::vector< ext_gen > & | fold_orbits () const |
KGBElt | x (BlockElt z) const |
KGBElt | y (BlockElt z) const |
virtual BlockElt | element (KGBElt x, KGBElt y) const |
Look up element by |x|, |y| coordinates. More... | |
size_t | length (BlockElt z) const |
BlockElt | length_first (size_t l) const |
BlockElt | cross (weyl::Generator s, BlockElt z) const |
BlockEltPair | cayley (weyl::Generator s, BlockElt z) const |
BlockEltPair | inverseCayley (weyl::Generator s, BlockElt z) const |
const DescentStatus & | descent (BlockElt z) const |
DescentStatus::Value | descentValue (weyl::Generator s, BlockElt z) const |
bool | isWeakDescent (weyl::Generator s, BlockElt z) const |
bool | isStrictAscent (weyl::Generator, BlockElt) const |
Tells if s is a strict ascent generator for z. More... | |
bool | isStrictDescent (weyl::Generator, BlockElt) const |
Tells if s is a strict descent generator for z. More... | |
weyl::Generator | firstStrictDescent (BlockElt z) const |
Returns the first descent for z (the number of a simple root) that is not imaginary compact, or rank() if there is no such descent. More... | |
weyl::Generator | firstStrictGoodDescent (BlockElt z) const |
Returns the first descent for z (the number of a simple root) that is either complex or real type I; if there is no such descent returns |rank()|. More... | |
BlockElt | Hermitian_dual (BlockElt z) const |
BlockEltPair | link (weyl::Generator alpha, weyl::Generator beta, BlockElt y) const |
virtual const TwistedInvolution & | involution (BlockElt z) const =0 |
std::ostream & | print_to (std::ostream &strm, bool as_invol_expr) const |
virtual std::ostream & | print (std::ostream &strm, BlockElt z, bool as_invol_expr) const =0 |
BruhatOrder & | bruhatOrder () |
kl::KLContext & | klc (BlockElt last_y, bool verbose) |
Protected Member Functions | |
KGBElt | renumber_x (const std::vector< KGBElt > &new_x) |
void | compute_first_zs () |
Protected Attributes | |
std::vector< EltInfo > | info |
std::vector< std::vector< block_fields > > | data |
std::vector< ext_gen > | orbits |
std::vector< BlockElt > | d_first_z_of_x |
DynkinDiagram | dd |
BruhatOrder * | d_bruhat |
kl::KLContext * | klc_ptr |
Private Member Functions | |
Block_base & | operator= (const Block_base &b) |
void | fillBruhat () |
Constructs the BruhatOrder. It could run out of memory, but Commit-or-rollback is guaranteed. More... | |
void | fill_klc (BlockElt last_y, bool verbose) |
atlas::blocks::Block_base::Block_base | ( | const KGB & | kgb, |
const KGB & | dual_kgb | ||
) |
atlas::blocks::Block_base::Block_base | ( | unsigned int | rank | ) |
|
virtual |
atlas::blocks::Block_base::Block_base | ( | const Block_base & | b | ) |
|
inline |
|
inline |
|
protected |
|
inline |
|
inline |
|
inline |
|
inline |
Look up element by |x|, |y| coordinates.
Precondition: |x| and |y| should be compatible: such a block element exists
This uses the |d_first_z_of_x| table to locate the range where the |x| coordinates are correct; then comparing the given |y| value with the first one present for |x| (there must be at least one) we can predict the value directly, since for each fixed |x| value the values of |y| are consecutive.
Reimplemented in atlas::blocks::non_integral_block.
|
private |
|
private |
Constructs the BruhatOrder. It could run out of memory, but Commit-or-rollback is guaranteed.
weyl::Generator atlas::blocks::Block_base::firstStrictDescent | ( | BlockElt | z | ) | const |
Returns the first descent for z (the number of a simple root) that is not imaginary compact, or rank() if there is no such descent.
weyl::Generator atlas::blocks::Block_base::firstStrictGoodDescent | ( | BlockElt | z | ) | const |
Returns the first descent for z (the number of a simple root) that is either complex or real type I; if there is no such descent returns |rank()|.
|
inline |
|
inline |
|
inline |
|
pure virtual |
Implemented in atlas::blocks::param_block, and atlas::blocks::Block.
bool atlas::blocks::Block_base::isStrictAscent | ( | weyl::Generator | s, |
BlockElt | z | ||
) | const |
Tells if s is a strict ascent generator for z.
Explanation: this means that descentValue(s,z) is one of ComplexAscent, ImaginaryTypeI or ImaginaryTypeII.
bool atlas::blocks::Block_base::isStrictDescent | ( | weyl::Generator | s, |
BlockElt | z | ||
) | const |
Tells if s is a strict descent generator for z.
Explanation: this means that descentValue(s,z) is one of ComplexDescent, RealTypeI or RealTypeII.
|
inline |
|
inline |
|
inline |
BlockElt atlas::blocks::Block_base::length_first | ( | size_t | l | ) | const |
BlockEltPair atlas::blocks::Block_base::link | ( | weyl::Generator | alpha, |
weyl::Generator | beta, | ||
BlockElt | y | ||
) | const |
|
private |
|
inline |
|
pure virtual |
Implemented in atlas::blocks::non_integral_block, and atlas::blocks::Block.
std::ostream & atlas::blocks::Block_base::print_to | ( | std::ostream & | strm, |
bool | as_invol_expr | ||
) | const |
|
inline |
|
inline |
|
pure virtual |
Implemented in atlas::blocks::param_block, and atlas::blocks::Block.
|
pure virtual |
Implemented in atlas::blocks::param_block, and atlas::blocks::Block.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |