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

atlas::descents::DescentStatus Class Reference

Describes the descent status of each simple root for a single representation. More...

#include <descents.h>

List of all members.

Public Types

enum  Value {
  ComplexAscent, RealNonparity, ImaginaryTypeI, ImaginaryTypeII,
  ImaginaryCompact, ComplexDescent, RealTypeII, RealTypeI
}

Public Member Functions

 DescentStatus ()
 ~DescentStatus ()
 DescentStatus (const DescentStatus &ds)
DescentStatusoperator= (const DescentStatus &ds)
Value operator[] (size_t s) const
 Returns descent status of simple root #s.
void set (size_t s, Value v)
 Sets the descent status of simple root #s to v.

Static Public Member Functions

bool isDescent (Value v)
 Tests whether Value is 4 through 7. These are the descents.
bool isDirectRecursion (Value v)
 Tests whether both bits of DirectRecursionMask are set.

Private Attributes

unsigned char d_data [constants::RANK_MAX]
 Value of byte #j specifies the descent status of simple root #j.

Static Private Attributes

const unsigned ValMask = constants::charBits - 1
const unsigned DescentMask = 0x4ul
 Bitwise "and" of Value with this is non-zero if Value is one of ImaginaryCompact, ComplexDescent, RealTypeII, or RealTypeI (numbers 4--7).
const unsigned DirectRecursionMask = 0x5ul
 Bitwise "and" of Value with this is equal to this if Value is either ComplexDescent (5) or RealTypeI (7).


Detailed Description

Describes the descent status of each simple root for a single representation.

There are eight possibilities for the descent status of a representation parameter w.r.t. a simple reflection, so this information could be packed in three bits. However, this would lead to having some packets lie across word boundaries, with the ensuing complications. Four bits is a good choice; here we take the lazy way of using even eight bits, as this makes the reading even a bit easier. We might come back to four at some later change---this should not require a change in user interface.

Definition at line 47 of file descents.h.


Member Enumeration Documentation

enum atlas::descents::DescentStatus::Value
 

Enumeration values:
ComplexAscent 
RealNonparity 
ImaginaryTypeI 
ImaginaryTypeII 
ImaginaryCompact 
ComplexDescent 
RealTypeII 
RealTypeI 

Definition at line 75 of file descents.h.


Constructor & Destructor Documentation

atlas::descents::DescentStatus::DescentStatus  )  [inline]
 

Definition at line 99 of file descents.h.

atlas::descents::DescentStatus::~DescentStatus  )  [inline]
 

Definition at line 103 of file descents.h.

atlas::descents::DescentStatus::DescentStatus const DescentStatus ds  )  [inline]
 

Definition at line 106 of file descents.h.

References d_data.


Member Function Documentation

bool atlas::descents::DescentStatus::isDescent Value  v  )  [inline, static]
 

Tests whether Value is 4 through 7. These are the descents.

The simple roots passing this test comprise the tau invariant for the representation.

Definition at line 84 of file descents.h.

bool atlas::descents::DescentStatus::isDirectRecursion Value  v  )  [inline, static]
 

Tests whether both bits of DirectRecursionMask are set.

In the case of a complex descent or a real type I descent there is a simple recursion formula for the KL element.

Definition at line 94 of file descents.h.

DescentStatus& atlas::descents::DescentStatus::operator= const DescentStatus ds  )  [inline]
 

Definition at line 110 of file descents.h.

References d_data.

Value atlas::descents::DescentStatus::operator[] size_t  s  )  const [inline]
 

Returns descent status of simple root #s.

Definition at line 120 of file descents.h.

void atlas::descents::DescentStatus::set size_t  s,
Value  v
[inline]
 

Sets the descent status of simple root #s to v.

Definition at line 129 of file descents.h.

Referenced by atlas::blocks::descents(), and atlas::klsupport::KLSupport::fillDownsets().


Member Data Documentation

unsigned char atlas::descents::DescentStatus::d_data[constants::RANK_MAX] [private]
 

Value of byte #j specifies the descent status of simple root #j.

Value should be 0 through 7; values 0 through 3 are ascents, and 4 through 7 are descents.

Definition at line 58 of file descents.h.

Referenced by DescentStatus(), and operator=().

const unsigned atlas::descents::DescentStatus::DescentMask = 0x4ul [static, private]
 

Bitwise "and" of Value with this is non-zero if Value is one of ImaginaryCompact, ComplexDescent, RealTypeII, or RealTypeI (numbers 4--7).

Definition at line 65 of file descents.h.

const unsigned atlas::descents::DescentStatus::DirectRecursionMask = 0x5ul [static, private]
 

Bitwise "and" of Value with this is equal to this if Value is either ComplexDescent (5) or RealTypeI (7).

Definition at line 71 of file descents.h.

const unsigned atlas::descents::DescentStatus::ValMask = constants::charBits - 1 [static, private]
 

Definition at line 59 of file descents.h.


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