Classes | Public Member Functions | Static Public Attributes | Private Types | Static Private Member Functions | Private Attributes | Friends

LibGeoDecomp::HilbertPartition Class Reference

#include <hilbertpartition.h>

Inherits SpaceFillingCurve< 2 >.

Collaboration diagram for LibGeoDecomp::HilbertPartition:
Collaboration graph
[legend]

List of all members.

Classes

class  Iterator
class  Square

Public Member Functions

 HilbertPartition (const Coord< 2 > &origin=Coord< 2 >(0, 0), const Coord< 2 > &dimensions=Coord< 2 >(0, 0), const long &offset=0, const std::vector< std::size_t > &weights=std::vector< std::size_t >(2))
Iterator operator[] (const unsigned &i) const
Iterator begin () const
Iterator end () const
Region< 2 > getRegion (const std::size_t node) const

Static Public Attributes

static boost::shared_ptr
< boost::multi_array
< std::vector< Coord< 2 > >, 3 > > 
squareCoordsCache
static Form squareFormTransitions [4][4]
static int squareSectorTransitions [4][4]
static Coord< 2 > maxCachedDimensions
static bool cachesInitialized = HilbertPartition::fillCaches()

Private Types

enum  Form { LL_TO_LR = 0, LL_TO_UL = 1, UR_TO_LR = 2, UR_TO_UL = 3 }

Static Private Member Functions

static bool fillCaches ()

Private Attributes

Coord< 2 > origin
Coord< 2 > dimensions

Friends

class HilbertPartitionTest

Member Enumeration Documentation

Enumerator:
LL_TO_LR 
LL_TO_UL 
UR_TO_LR 
UR_TO_UL 

Constructor & Destructor Documentation

LibGeoDecomp::HilbertPartition::HilbertPartition ( const Coord< 2 > &  origin = Coord<2>(0, 0),
const Coord< 2 > &  dimensions = Coord<2>(0, 0),
const long &  offset = 0,
const std::vector< std::size_t > &  weights = std::vector<std::size_t>(2) 
) [inline, explicit]

Member Function Documentation

Iterator LibGeoDecomp::HilbertPartition::begin (  )  const [inline]
Iterator LibGeoDecomp::HilbertPartition::end (  )  const [inline]

References origin.

Referenced by fillCaches().

static bool LibGeoDecomp::HilbertPartition::fillCaches (  )  [inline, static, private]
Region<2> LibGeoDecomp::HilbertPartition::getRegion ( const std::size_t  node  )  const [inline, virtual]
Iterator LibGeoDecomp::HilbertPartition::operator[] ( const unsigned i  )  const [inline]

References dimensions, and origin.


Friends And Related Function Documentation

friend class HilbertPartitionTest [friend]

Member Data Documentation

bool LibGeoDecomp::HilbertPartition::cachesInitialized = HilbertPartition::fillCaches() [static]

Referenced by end(), and operator[]().

boost::shared_ptr< boost::multi_array< std::vector< Coord< 2 > >, 3 > > LibGeoDecomp::HilbertPartition::squareCoordsCache [static]

Referenced by fillCaches().

Initial value:
 {
    {LL_TO_UL, LL_TO_LR, LL_TO_LR, UR_TO_LR}, 
    {LL_TO_LR, LL_TO_UL, LL_TO_UL, UR_TO_UL}, 
    {UR_TO_UL, UR_TO_LR, UR_TO_LR, LL_TO_LR}, 
    {UR_TO_LR, UR_TO_UL, UR_TO_UL, LL_TO_UL}  
}

Referenced by LibGeoDecomp::HilbertPartition::Iterator::digDownRecursion().

Initial value:
 {
    {2, 0, 1, 3}, 
    {2, 3, 1, 0}, 
    {1, 0, 2, 3}, 
    {1, 3, 2, 0}  
}

Referenced by LibGeoDecomp::HilbertPartition::Iterator::digDownRecursion().


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