![]() |
Realm
A distributed, event-based tasking library
|
#include <inst_layout.h>
Public Member Functions | |
| REALM_CUDA_HD | AffineAccessor (void) |
| AffineAccessor (RegionInstance inst, FieldID field_id, size_t subfield_offset=0) | |
| AffineAccessor (RegionInstance inst, FieldID field_id, const Rect< N, T > &subrect, size_t subfield_offset=0) | |
| REALM_CUDA_HD | ~AffineAccessor (void) |
| AffineAccessor (const AffineAccessor &)=default | |
| AffineAccessor & | operator= (const AffineAccessor &)=default |
| AffineAccessor (AffineAccessor &&) noexcept=default | |
| AffineAccessor & | operator= (AffineAccessor &&) noexcept=default |
| REALM_CUDA_HD void | reset () |
| void | reset (RegionInstance inst, FieldID field_id, size_t subfield_offset=0) |
| void | reset (RegionInstance inst, FieldID field_id, const Rect< N, T > &subrect, size_t subfield_offset=0) |
| template<int N2, typename T2 > | |
| void | reset (RegionInstance inst, const Matrix< N2, N, T2 > &transform, const Point< N2, T2 > &offset, FieldID field_id, size_t subfield_offset=0) |
| template<int N2, typename T2 > | |
| void | reset (RegionInstance inst, const Matrix< N2, N, T2 > &transform, const Point< N2, T2 > &offset, FieldID field_id, const Rect< N, T > &subrect, size_t subfield_offset=0) |
| REALM_CUDA_HD FT * | ptr (const Point< N, T > &p) const |
| REALM_CUDA_HD FT | read (const Point< N, T > &p) const |
| REALM_CUDA_HD void | write (const Point< N, T > &p, FT newval) const |
| REALM_CUDA_HD FT & | operator[] (const Point< N, T > &p) const |
| REALM_CUDA_HD bool | is_dense_arbitrary (const Rect< N, T > &bounds) const |
| REALM_CUDA_HD bool | is_dense_col_major (const Rect< N, T > &bounds) const |
| REALM_CUDA_HD bool | is_dense_row_major (const Rect< N, T > &bounds) const |
| template<int N2, typename T2 > | |
| AffineAccessor (RegionInstance inst, const Matrix< N2, N, T2 > &transform, const Point< N2, T2 > &offset, FieldID field_id, size_t subfield_offset=0) | |
| template<int N2, typename T2 > | |
| AffineAccessor (RegionInstance inst, const Matrix< N2, N, T2 > &transform, const Point< N2, T2 > &offset, FieldID field_id, const Rect< N, T > &subrect, size_t subfield_offset=0) | |
Static Public Member Functions | |
| static bool | is_compatible (RegionInstance inst, FieldID field_id) |
| static bool | is_compatible (RegionInstance inst, FieldID field_id, const Rect< N, T > &subrect) |
| template<int N2, typename T2 > | |
| static bool | is_compatible (RegionInstance inst, const Matrix< N2, N, T2 > &transform, const Point< N2, T2 > &offset, FieldID field_id) |
| template<int N2, typename T2 > | |
| static bool | is_compatible (RegionInstance inst, const Matrix< N2, N, T2 > &transform, const Point< N2, T2 > &offset, FieldID field_id, const Rect< N, T > &subrect) |
Public Attributes | |
| uintptr_t | base |
| Point< N, size_t > | strides |
Protected Member Functions | |
| REALM_CUDA_HD FT * | get_ptr (const Point< N, T > &p) const |
An accessor that works for any instance layout that can be linearized using an affine transformation. AffineAccessors are generally more efficient than GenericAccessors, but are only applicable to a subset of instance layouts. The random-access look-ups are O(1) in the size of the instance.
| REALM_CUDA_HD Realm::AffineAccessor< FT, N, T >::AffineAccessor | ( | void | ) |
| Realm::AffineAccessor< FT, N, T >::AffineAccessor | ( | RegionInstance | inst, |
| FieldID | field_id, | ||
| size_t | subfield_offset = 0 |
||
| ) |
Construct an AffineAccessor for the specified instance and field. Implicitly tries to cover the entire instance's domain. NOTE: this constructor will die if the instance is not compatible with AffineAccessor. Call is_compatible(...) first if you're not sure.
| inst | RegionInstance to construct accessor for. |
| field_id | FieldID of field to construct accessor for. |
| subfield_offset | Offset of subfield to construct accessor for. |
| Realm::AffineAccessor< FT, N, T >::AffineAccessor | ( | RegionInstance | inst, |
| FieldID | field_id, | ||
| const Rect< N, T > & | subrect, | ||
| size_t | subfield_offset = 0 |
||
| ) |
Construct an AffineAccessor for the specified instance and field. Limits the domain to the specified subrectangle. NOTE: this constructor will die if the instance is not compatible with AffineAccessor. Call is_compatible(...) first if you're not sure.
| inst | RegionInstance to construct accessor for. |
| field_id | FieldID of field to construct accessor for. |
| subrect | Subrectangle to limit domain to. |
| subfield_offset | Offset of subfield to construct accessor for. |
| Realm::AffineAccessor< FT, N, T >::AffineAccessor | ( | RegionInstance | inst, |
| const Matrix< N2, N, T2 > & | transform, | ||
| const Point< N2, T2 > & | offset, | ||
| FieldID | field_id, | ||
| size_t | subfield_offset = 0 |
||
| ) |
Construct an AffineAccessor for the specified instance, field, and coordinate transform.
| inst | RegionInstance to construct accessor for. |
| transform | Affine transform to apply to coordinates. |
| offset | Offset to apply to coordinates. |
| field_id | FieldID of field to construct accessor for. |
| subfield_offset | Offset of subfield to construct accessor for. |
| Realm::AffineAccessor< FT, N, T >::AffineAccessor | ( | RegionInstance | inst, |
| const Matrix< N2, N, T2 > & | transform, | ||
| const Point< N2, T2 > & | offset, | ||
| FieldID | field_id, | ||
| const Rect< N, T > & | subrect, | ||
| size_t | subfield_offset = 0 |
||
| ) |
| REALM_CUDA_HD Realm::AffineAccessor< FT, N, T >::~AffineAccessor | ( | void | ) |
|
default |
|
defaultnoexcept |
|
protected |
|
static |
|
static |
|
static |
|
static |
| REALM_CUDA_HD bool Realm::AffineAccessor< FT, N, T >::is_dense_arbitrary | ( | const Rect< N, T > & | bounds | ) | const |
| REALM_CUDA_HD bool Realm::AffineAccessor< FT, N, T >::is_dense_col_major | ( | const Rect< N, T > & | bounds | ) | const |
| REALM_CUDA_HD bool Realm::AffineAccessor< FT, N, T >::is_dense_row_major | ( | const Rect< N, T > & | bounds | ) | const |
|
defaultnoexcept |
|
default |
| REALM_CUDA_HD FT & Realm::AffineAccessor< FT, N, T >::operator[] | ( | const Point< N, T > & | p | ) | const |
| REALM_CUDA_HD FT * Realm::AffineAccessor< FT, N, T >::ptr | ( | const Point< N, T > & | p | ) | const |
| REALM_CUDA_HD FT Realm::AffineAccessor< FT, N, T >::read | ( | const Point< N, T > & | p | ) | const |
| REALM_CUDA_HD void Realm::AffineAccessor< FT, N, T >::reset | ( | ) |
| void Realm::AffineAccessor< FT, N, T >::reset | ( | RegionInstance | inst, |
| const Matrix< N2, N, T2 > & | transform, | ||
| const Point< N2, T2 > & | offset, | ||
| FieldID | field_id, | ||
| const Rect< N, T > & | subrect, | ||
| size_t | subfield_offset = 0 |
||
| ) |
| void Realm::AffineAccessor< FT, N, T >::reset | ( | RegionInstance | inst, |
| const Matrix< N2, N, T2 > & | transform, | ||
| const Point< N2, T2 > & | offset, | ||
| FieldID | field_id, | ||
| size_t | subfield_offset = 0 |
||
| ) |
| void Realm::AffineAccessor< FT, N, T >::reset | ( | RegionInstance | inst, |
| FieldID | field_id, | ||
| const Rect< N, T > & | subrect, | ||
| size_t | subfield_offset = 0 |
||
| ) |
| void Realm::AffineAccessor< FT, N, T >::reset | ( | RegionInstance | inst, |
| FieldID | field_id, | ||
| size_t | subfield_offset = 0 |
||
| ) |
| REALM_CUDA_HD void Realm::AffineAccessor< FT, N, T >::write | ( | const Point< N, T > & | p, |
| FT | newval | ||
| ) | const |
| uintptr_t Realm::AffineAccessor< FT, N, T >::base |
| Point<N, size_t> Realm::AffineAccessor< FT, N, T >::strides |