|
| ArrayHandlePermutation () |
|
VTKM_CONT | ArrayHandlePermutation (const Thisclass &src) |
|
VTKM_CONT | ArrayHandlePermutation (Thisclass &&src) noexcept |
|
VTKM_CONT | ArrayHandlePermutation (const vtkm::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &src) |
|
VTKM_CONT | ArrayHandlePermutation (vtkm::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &&src) noexcept |
|
VTKM_CONT | ArrayHandlePermutation (const std::vector< vtkm::cont::internal::Buffer > &buffers) |
|
VTKM_CONT | ArrayHandlePermutation (std::vector< vtkm::cont::internal::Buffer > &&buffers) noexcept |
|
VTKM_CONT Thisclass & | operator= (const Thisclass &src) |
|
VTKM_CONT Thisclass & | operator= (Thisclass &&src) noexcept |
|
| ArrayHandlePermutation (const IndexArrayHandleType &indexArray, const ValueArrayHandleType &valueArray) |
| Construct a permuation array with index and value arrays. More...
|
|
IndexArrayHandleType | GetIndexArray () const |
| Return the array used for indices. More...
|
|
ValueArrayHandleType | GetValueArray () const |
| Return the array used for values. More...
|
|
Public Member Functions inherited from vtkm::cont::ArrayHandle< ValueArrayHandleType::ValueType, vtkm::cont::StorageTagPermutation< IndexArrayHandleType::StorageTag, ValueArrayHandleType::StorageTag > > |
| ArrayHandle () |
| Constructs an empty ArrayHandle. More...
|
|
| ArrayHandle (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &src) |
| Copy constructor. More...
|
|
| ArrayHandle (vtkm::cont::ArrayHandle< ValueType, StorageTag > &&src) noexcept |
| Move constructor. More...
|
|
| ArrayHandle (const std::vector< vtkm::cont::internal::Buffer > &buffers) |
| Special constructor for subclass specializations that need to set the initial state array. More...
|
|
| ArrayHandle (std::vector< vtkm::cont::internal::Buffer > &&buffers) noexcept |
| Special constructor for subclass specializations that need to set the initial state array. More...
|
|
| ~ArrayHandle () |
| Destructs an empty ArrayHandle. More...
|
|
vtkm::cont::ArrayHandle< ValueType, StorageTag > & | operator= (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &src) |
| Shallow copies an ArrayHandle. More...
|
|
vtkm::cont::ArrayHandle< ValueType, StorageTag > & | operator= (vtkm::cont::ArrayHandle< ValueType, StorageTag > &&src) noexcept |
| Move and Assignment of an ArrayHandle. More...
|
|
bool | operator== (const ArrayHandle< ValueType, StorageTag > &rhs) const |
| Like a pointer, two ArrayHandle s are considered equal if they point to the same location in memory. More...
|
|
bool | operator== (const ArrayHandle< VT, ST > &) const |
|
bool | operator!= (const ArrayHandle< ValueType, StorageTag > &rhs) const |
|
bool | operator!= (const ArrayHandle< VT, ST > &) const |
|
StorageType | GetStorage () const |
| Get the storage. More...
|
|
ReadPortalType | ReadPortal () const |
| Get an array portal that can be used in the control environment. More...
|
|
ReadPortalType | ReadPortal (vtkm::cont::Token &token) const |
| The type of portal used when accessing data in a read-only mode. More...
|
|
WritePortalType | WritePortal () const |
| Get an array portal that can be used in the control environment. More...
|
|
WritePortalType | WritePortal (vtkm::cont::Token &token) const |
| Get an array portal that can be used in the control environment. More...
|
|
vtkm::Id | GetNumberOfValues () const |
| Returns the number of entries in the array. More...
|
|
vtkm::IdComponent | GetNumberOfComponentsFlat () const |
| Returns the total number of components for each value in the array. More...
|
|
void | Allocate (vtkm::Id numberOfValues, vtkm::CopyFlag preserve, vtkm::cont::Token &token) const |
| Allocates an array large enough to hold the given number of values. More...
|
|
void | Allocate (vtkm::Id numberOfValues, vtkm::CopyFlag preserve=vtkm::CopyFlag::Off) const |
| Allocates an array large enough to hold the given number of values. More...
|
|
void | AllocateAndFill (vtkm::Id numberOfValues, const ValueType &fillValue, vtkm::CopyFlag preserve, vtkm::cont::Token &token) const |
| Allocates an array and fills it with an initial value. More...
|
|
void | AllocateAndFill (vtkm::Id numberOfValues, const ValueType &fillValue, vtkm::CopyFlag preserve=vtkm::CopyFlag::Off) const |
| Allocates an array and fills it with an initial value. More...
|
|
void | Fill (const ValueType &fillValue, vtkm::Id startIndex, vtkm::Id endIndex, vtkm::cont::Token &token) const |
| Fills the array with a given value. More...
|
|
void | Fill (const ValueType &fillValue, vtkm::Id startIndex, vtkm::Id endIndex) const |
| Fills the array with a given value. More...
|
|
void | Fill (const ValueType &fillValue, vtkm::Id startIndex=0) const |
| Fills the array with a given value. More...
|
|
void | ReleaseResourcesExecution () const |
| Releases any resources being used in the execution environment (that are not being shared by the control environment). More...
|
|
void | ReleaseResources () const |
| Releases all resources in both the control and execution environments. More...
|
|
ReadPortalType | PrepareForInput (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const |
| Prepares this array to be used as an input to an operation in the execution environment. More...
|
|
WritePortalType | PrepareForInPlace (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const |
| Prepares this array to be used in an in-place operation (both as input and output) in the execution environment. More...
|
|
WritePortalType | PrepareForOutput (vtkm::Id numberOfValues, vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const |
| Prepares (allocates) this array to be used as an output from an operation in the execution environment. More...
|
|
bool | IsOnDevice (vtkm::cont::DeviceAdapterId device) const |
| Returns true if the ArrayHandle's data is on the given device. More...
|
|
bool | IsOnHost () const |
| Returns true if the ArrayHandle's data is on the host. More...
|
|
void | SyncControlArray () const |
| Synchronizes the control array with the execution array. More...
|
|
void | Enqueue (const vtkm::cont::Token &token) const |
| Enqueue a token for access to this ArrayHandle. More...
|
|
void | DeepCopyFrom (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &source) const |
| Deep copies the data in the array. More...
|
|
const std::vector< vtkm::cont::internal::Buffer > & | GetBuffers () const |
| Returns the internal Buffer structures that hold the data. More...
|
|
std::vector< vtkm::cont::internal::Buffer > & | GetBuffers () |
|
template<typename IndexArrayHandleType, typename ValueArrayHandleType>
class vtkm::cont::ArrayHandlePermutation< IndexArrayHandleType, ValueArrayHandleType >
Implicitly permutes the values in an array.
ArrayHandlePermutation is a specialization of ArrayHandle. It takes two delegate array handles: an array of indices and an array of values. The array handle created contains the values given permuted by the indices given. So for a given index i, ArrayHandlePermutation looks up the i-th value in the index array to get permuted index j and then gets the j-th value in the value array. This index permutation is done on the fly rather than creating a copy of the array.
An ArrayHandlePermutation can be used for either input or output. However, if used for output the array must be pre-allocated. That is, the indices must already be established and the values must have an allocation large enough to accommodate the indices. An output ArrayHandlePermutation will only have values changed. The indices are never changed.
When using ArrayHandlePermutation great care should be taken to make sure that every index in the index array points to a valid position in the value array. Otherwise, access validations will occur. Also, be wary of duplicate indices that point to the same location in the value array. For input arrays, this is fine. However, this could result in unexpected results for using as output and is almost certainly wrong for using as in-place.