Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::AffineLayoutPiece< N, T > Class Template Reference

#include <inst_layout.h>

Inheritance diagram for Realm::AffineLayoutPiece< N, T >:
Collaboration diagram for Realm::AffineLayoutPiece< N, T >:

Public Member Functions

 AffineLayoutPiece (void)
 
virtual InstanceLayoutPiece< N, T > * clone (void) const
 
virtual size_t calculate_offset (const Point< N, T > &p) const
 
virtual void relocate (size_t base_offset)
 
virtual void print (std::ostream &os) const
 
virtual size_t lookup_inst_size () const
 
virtual PieceLookup::Instructioncreate_lookup_inst (void *ptr, unsigned next_delta) const
 
template<typename S >
bool serialize (S &serializer) const
 
- Public Member Functions inherited from Realm::InstanceLayoutPiece< N, T >
 InstanceLayoutPiece (void)
 
 InstanceLayoutPiece (PieceLayoutTypes::LayoutType _layout_type)
 
 InstanceLayoutPiece (PieceLayoutTypes::LayoutType _layout_type, const Rect< N, T > &_bounds)
 
- Public Member Functions inherited from Realm::InstanceLayoutPieceBase
 InstanceLayoutPieceBase (PieceLayoutTypes::LayoutType _layout_type)
 
virtual ~InstanceLayoutPieceBase (void)
 

Static Public Member Functions

template<typename S >
static InstanceLayoutPiece< N, T > * deserialize_new (S &deserializer)
 
- Static Public Member Functions inherited from Realm::InstanceLayoutPiece< N, T >
template<typename S >
static InstanceLayoutPiece< N, T > * deserialize_new (S &deserializer)
 

Public Attributes

Point< N, size_t > strides
 
size_t offset
 
- Public Attributes inherited from Realm::InstanceLayoutPiece< N, T >
Rect< N, T > bounds
 
- Public Attributes inherited from Realm::InstanceLayoutPieceBase
PieceLayoutTypes::LayoutType layout_type
 

Static Public Attributes

static Serialization::PolymorphicSerdezSubclass< InstanceLayoutPiece< N, T >, AffineLayoutPiece< N, T > > serdez_subclass
 

Detailed Description

template<int N, typename T = int>
class Realm::AffineLayoutPiece< N, T >

An affine piece of an instance layout. Affine pieces are defined by a single rectangle and a set of strides.

Constructor & Destructor Documentation

◆ AffineLayoutPiece()

template<int N, typename T = int>
Realm::AffineLayoutPiece< N, T >::AffineLayoutPiece ( void  )

Member Function Documentation

◆ calculate_offset()

template<int N, typename T = int>
virtual size_t Realm::AffineLayoutPiece< N, T >::calculate_offset ( const Point< N, T > &  p) const
virtual

Calculate the offset of a point within the affine piece. The offet is calculated as: offset + sum(strides[i] * p[i]).

Parameters
pPoint to calculate offset for.
Returns
size_t Offset of point.

Implements Realm::InstanceLayoutPiece< N, T >.

◆ clone()

template<int N, typename T = int>
virtual InstanceLayoutPiece< N, T > * Realm::AffineLayoutPiece< N, T >::clone ( void  ) const
virtual

◆ create_lookup_inst()

template<int N, typename T = int>
virtual PieceLookup::Instruction * Realm::AffineLayoutPiece< N, T >::create_lookup_inst ( void *  ptr,
unsigned  next_delta 
) const
virtual

◆ deserialize_new()

template<int N, typename T = int>
template<typename S >
static InstanceLayoutPiece< N, T > * Realm::AffineLayoutPiece< N, T >::deserialize_new ( S &  deserializer)
static

◆ lookup_inst_size()

template<int N, typename T = int>
virtual size_t Realm::AffineLayoutPiece< N, T >::lookup_inst_size ( ) const
virtual

◆ print()

template<int N, typename T = int>
virtual void Realm::AffineLayoutPiece< N, T >::print ( std::ostream &  os) const
virtual

◆ relocate()

template<int N, typename T = int>
virtual void Realm::AffineLayoutPiece< N, T >::relocate ( size_t  base_offset)
virtual

◆ serialize()

template<int N, typename T = int>
template<typename S >
bool Realm::AffineLayoutPiece< N, T >::serialize ( S &  serializer) const

Member Data Documentation

◆ offset

template<int N, typename T = int>
size_t Realm::AffineLayoutPiece< N, T >::offset

◆ serdez_subclass

template<int N, typename T = int>
Serialization::PolymorphicSerdezSubclass<InstanceLayoutPiece<N, T>, AffineLayoutPiece<N, T> > Realm::AffineLayoutPiece< N, T >::serdez_subclass
static

◆ strides

template<int N, typename T = int>
Point<N, size_t> Realm::AffineLayoutPiece< N, T >::strides

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