|
| ArrayHandleRandomUniformBits () |
|
VTKM_CONT | ArrayHandleRandomUniformBits (const Thisclass &src) |
|
VTKM_CONT | ArrayHandleRandomUniformBits (Thisclass &&src) noexcept |
|
VTKM_CONT | ArrayHandleRandomUniformBits (const vtkm::cont::ArrayHandle< Superclass::ValueType, Superclass::StorageTag > &src) |
|
VTKM_CONT | ArrayHandleRandomUniformBits (vtkm::cont::ArrayHandle< Superclass::ValueType, Superclass::StorageTag > &&src) noexcept |
|
VTKM_CONT | ArrayHandleRandomUniformBits (const std::vector< vtkm::cont::internal::Buffer > &buffers) |
|
VTKM_CONT | ArrayHandleRandomUniformBits (std::vector< vtkm::cont::internal::Buffer > &&buffers) noexcept |
|
VTKM_CONT Thisclass & | operator= (const Thisclass &src) |
|
VTKM_CONT Thisclass & | operator= (Thisclass &&src) noexcept |
|
| ArrayHandleRandomUniformBits (vtkm::Id length, SeedType seed={ std::random_device{}() }) |
| Construct an ArrayHandleRandomUniformBits . More...
|
|
Public Member Functions inherited from vtkm::cont::ArrayHandle< T, 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< ValueType, StorageTag > &rhs) const |
|
template<typename VT , typename ST > |
bool | operator== (const ArrayHandle< VT, ST > &) const |
|
template<typename VT , typename ST > |
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 () |
|
An ArrayHandle
that provides a source of random bits.
ArrayHandleRandomUniformBits
is a specialization of ArrayHandleImplicit
. It takes a user supplied seed and hash it with the a given index value. The hashed value is the value of the array at that position.
Currently, Philox2x32x10 as described in the "Parallel Random Numbers: As Easy as 1, 2, 3," Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC11) is used as the hash function.
Note: In contrast to traditional random number generator, ArrayHandleRandomUniformBits
does not have "state", i.e. multiple calls the Get() method with the same index will always return the same hash value. To get a new set of random bits, create a new ArrayHandleRandomUniformBits
with a different seed.