#include <hilbertpartition.h>
Inherits SpaceFillingCurve< 2 >.
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 |
enum LibGeoDecomp::HilbertPartition::Form [private] |
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] |
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] |
Implements LibGeoDecomp::Partition< DIM >.
References LibGeoDecomp::Partition< DIM >::startOffsets.
References dimensions, and origin.
friend class HilbertPartitionTest [friend] |
bool LibGeoDecomp::HilbertPartition::cachesInitialized = HilbertPartition::fillCaches() [static] |
Coord<2> LibGeoDecomp::HilbertPartition::dimensions [private] |
Coord< 2 > LibGeoDecomp::HilbertPartition::maxCachedDimensions [static] |
Referenced by fillCaches(), and LibGeoDecomp::HilbertPartition::Iterator::isCached().
Coord<2> LibGeoDecomp::HilbertPartition::origin [private] |
Referenced by end(), and operator[]().
boost::shared_ptr< boost::multi_array< std::vector< Coord< 2 > >, 3 > > LibGeoDecomp::HilbertPartition::squareCoordsCache [static] |
Referenced by fillCaches().
{ {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().
{ {2, 0, 1, 3}, {2, 3, 1, 0}, {1, 0, 2, 3}, {1, 3, 2, 0} }
Referenced by LibGeoDecomp::HilbertPartition::Iterator::digDownRecursion().