|
using | Thisclass = typename viskores::cont::detail::GetTypeInParentheses< void(ArrayHandleGroupVec< ComponentsArrayHandleType, NUM_COMPONENTS >) >::type |
|
using | Superclass = typename viskores::cont::detail::GetTypeInParentheses< void(viskores::cont::ArrayHandle< viskores::Vec< typename ComponentsArrayHandleType::ValueType, NUM_COMPONENTS >, viskores::cont::StorageTagGroupVec< typename ComponentsArrayHandleType::StorageTag, NUM_COMPONENTS > >) >::type |
|
using | ValueType = typename Superclass::ValueType |
|
using | StorageTag = typename Superclass::StorageTag |
|
using | StorageType = typename Superclass::StorageType |
|
using | ReadPortalType = typename Superclass::ReadPortalType |
|
using | WritePortalType = typename Superclass::WritePortalType |
|
using | ComponentType = typename ComponentsArrayHandleType::ValueType |
|
Public Types inherited from viskores::cont::ArrayHandle< viskores::Vec< ComponentsArrayHandleType::ValueType, NUM_COMPONENTS >, viskores::cont::StorageTagGroupVec< ComponentsArrayHandleType::StorageTag, NUM_COMPONENTS > > |
using | ValueType = viskores::Vec< ComponentsArrayHandleType::ValueType, NUM_COMPONENTS > |
|
using | StorageTag = viskores::cont::StorageTagGroupVec< ComponentsArrayHandleType::StorageTag, NUM_COMPONENTS > |
|
using | StorageType = viskores::cont::internal::Storage< ValueType, StorageTag > |
|
using | ReadPortalType = typename StorageType::ReadPortalType |
| The type of portal used when accessing data in a read-only mode. More...
|
|
using | WritePortalType = typename StorageType::WritePortalType |
| The type of portal used when accessing data in a read-write mode. More...
|
|
|
| ArrayHandleGroupVec () |
|
VISKORES_CONT | ArrayHandleGroupVec (const Thisclass &src) |
|
VISKORES_CONT | ArrayHandleGroupVec (Thisclass &&src) noexcept |
|
VISKORES_CONT | ArrayHandleGroupVec (const viskores::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &src) |
|
VISKORES_CONT | ArrayHandleGroupVec (viskores::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &&src) noexcept |
|
VISKORES_CONT | ArrayHandleGroupVec (const std::vector< viskores::cont::internal::Buffer > &buffers) |
|
VISKORES_CONT | ArrayHandleGroupVec (std::vector< viskores::cont::internal::Buffer > &&buffers) noexcept |
|
VISKORES_CONT Thisclass & | operator= (const Thisclass &src) |
|
VISKORES_CONT Thisclass & | operator= (Thisclass &&src) noexcept |
|
| ArrayHandleGroupVec (const ComponentsArrayHandleType &componentsArray) |
| Construct an ArrayHandleGroupVec with a provided components array. More...
|
|
ComponentsArrayHandleType | GetComponentsArray () const |
| Retrieve the components array being grouped. More...
|
|
Public Member Functions inherited from viskores::cont::ArrayHandle< viskores::Vec< ComponentsArrayHandleType::ValueType, NUM_COMPONENTS >, viskores::cont::StorageTagGroupVec< ComponentsArrayHandleType::StorageTag, NUM_COMPONENTS > > |
| ArrayHandle () |
| Constructs an empty ArrayHandle. More...
|
|
| ArrayHandle (const viskores::cont::ArrayHandle< ValueType, StorageTag > &src) |
| Copy constructor. More...
|
|
| ArrayHandle (viskores::cont::ArrayHandle< ValueType, StorageTag > &&src) noexcept |
| Move constructor. More...
|
|
| ArrayHandle (const std::vector< viskores::cont::internal::Buffer > &buffers) |
| Special constructor for subclass specializations that need to set the initial state array. More...
|
|
| ArrayHandle (std::vector< viskores::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...
|
|
viskores::cont::ArrayHandle< ValueType, StorageTag > & | operator= (const viskores::cont::ArrayHandle< ValueType, StorageTag > &src) |
| Shallow copies an ArrayHandle. More...
|
|
viskores::cont::ArrayHandle< ValueType, StorageTag > & | operator= (viskores::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 (viskores::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 (viskores::cont::Token &token) const |
| Get an array portal that can be used in the control environment. More...
|
|
viskores::Id | GetNumberOfValues () const |
| Returns the number of entries in the array. More...
|
|
viskores::IdComponent | GetNumberOfComponentsFlat () const |
| Returns the total number of components for each value in the array. More...
|
|
void | Allocate (viskores::Id numberOfValues, viskores::CopyFlag preserve, viskores::cont::Token &token) const |
| Allocates an array large enough to hold the given number of values. More...
|
|
void | Allocate (viskores::Id numberOfValues, viskores::CopyFlag preserve=viskores::CopyFlag::Off) const |
| Allocates an array large enough to hold the given number of values. More...
|
|
void | AllocateAndFill (viskores::Id numberOfValues, const ValueType &fillValue, viskores::CopyFlag preserve, viskores::cont::Token &token) const |
| Allocates an array and fills it with an initial value. More...
|
|
void | AllocateAndFill (viskores::Id numberOfValues, const ValueType &fillValue, viskores::CopyFlag preserve=viskores::CopyFlag::Off) const |
| Allocates an array and fills it with an initial value. More...
|
|
void | Fill (const ValueType &fillValue, viskores::Id startIndex, viskores::Id endIndex, viskores::cont::Token &token) const |
| Fills the array with a given value. More...
|
|
void | Fill (const ValueType &fillValue, viskores::Id startIndex, viskores::Id endIndex) const |
| Fills the array with a given value. More...
|
|
void | Fill (const ValueType &fillValue, viskores::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 (viskores::cont::DeviceAdapterId device, viskores::cont::Token &token) const |
| Prepares this array to be used as an input to an operation in the execution environment. More...
|
|
WritePortalType | PrepareForInPlace (viskores::cont::DeviceAdapterId device, viskores::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 (viskores::Id numberOfValues, viskores::cont::DeviceAdapterId device, viskores::cont::Token &token) const |
| Prepares (allocates) this array to be used as an output from an operation in the execution environment. More...
|
|
bool | IsOnDevice (viskores::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 viskores::cont::Token &token) const |
| Enqueue a token for access to this ArrayHandle. More...
|
|
void | DeepCopyFrom (const viskores::cont::ArrayHandle< ValueType, StorageTag > &source) const |
| Deep copies the data in the array. More...
|
|
const std::vector< viskores::cont::internal::Buffer > & | GetBuffers () const |
| Returns the internal Buffer structures that hold the data. More...
|
|
std::vector< viskores::cont::internal::Buffer > & | GetBuffers () |
|
template<typename ComponentsArrayHandleType, viskores::IdComponent NUM_COMPONENTS>
class viskores::cont::ArrayHandleGroupVec< ComponentsArrayHandleType, NUM_COMPONENTS >
Fancy array handle that groups values into vectors.
It is sometimes the case that an array is stored such that consecutive entries are meant to form a group. This fancy array handle takes an array of values and a size of groups and then groups the consecutive values stored in a viskores::Vec
.
For example, if you have an array handle with the six values 0,1,2,3,4,5 and give it to a ArrayHandleGroupVec
with the number of components set to 3, you get an array that looks like it contains two values of viskores::Vec
of size 3 with the data [0,1,2], [3,4,5].
The array of components should have a number of values that divides evenly with the size of the viskores::Vec
. If the components array does not divide evenly into viskores::Vec
s, then a warning will be logged and the extra component values will be ignored.