atlas  0.6
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
atlas::descents::DescentStatus Class Reference

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

#include <descents.h>

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. More...
 
void set (size_t s, Value v)
 Sets the descent status of simple root #s to v. More...
 

Static Public Member Functions

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

Private Attributes

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

Static Private Attributes

static const unsigned ValMask = constants::charBits - 1
 
static 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) More...
 
static const unsigned DirectRecursionMask = 0x5ul
 Bitwise "and" of Value with this is equal to this if Value is either ComplexDescent (5) or RealTypeI (7) More...
 

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.

Member Enumeration Documentation

Enumerator
ComplexAscent 
RealNonparity 
ImaginaryTypeI 
ImaginaryTypeII 
ImaginaryCompact 
ComplexDescent 
RealTypeII 
RealTypeI 

Constructor & Destructor Documentation

atlas::descents::DescentStatus::DescentStatus ( )
inline
atlas::descents::DescentStatus::~DescentStatus ( )
inline
atlas::descents::DescentStatus::DescentStatus ( const DescentStatus ds)
inline

Member Function Documentation

static bool atlas::descents::DescentStatus::isDescent ( Value  v)
inlinestatic

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

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

static bool atlas::descents::DescentStatus::isDirectRecursion ( Value  v)
inlinestatic

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.

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

Returns descent status of simple root #s.

void atlas::descents::DescentStatus::set ( size_t  s,
Value  v 
)
inline

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

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.

const unsigned atlas::descents::DescentStatus::DescentMask = 0x4ul
staticprivate

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

const unsigned atlas::descents::DescentStatus::DirectRecursionMask = 0x5ul
staticprivate

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

const unsigned atlas::descents::DescentStatus::ValMask = constants::charBits - 1
staticprivate

The documentation for this class was generated from the following file: