| 
    VTK-m
    2.0
    
   | 
 
An ArrayHandle that provides a source of random bits.  
 More...
#include <ArrayHandleRandomUniformBits.h>
  
Public Types | |
| using | SeedType = vtkm::Vec< vtkm::UInt32, 1 > | 
  Public Types inherited from vtkm::cont::ArrayHandle< T, StorageTag_ > | |
| using | ValueType = T | 
| using | StorageTag = StorageTag_ | 
| using | StorageType = vtkm::cont::internal::Storage< ValueType, StorageTag > | 
| using | ReadPortalType = typename StorageType::ReadPortalType | 
| using | WritePortalType = typename StorageType::WritePortalType | 
Public Member Functions | |
| VTKM_ARRAY_HANDLE_SUBCLASS_NT (ArrayHandleRandomUniformBits,(vtkm::cont::ArrayHandleImplicit< detail::PhiloxFunctor >)) | |
| ArrayHandleRandomUniformBits (vtkm::Id length, SeedType seed={ std::random_device{}() }) | |
| The type of seed is specifically designed to be an vtkm::Vec<> to provide type safety for the parameters so user will not transpose two integer parameters.  More... | |
  Public Member Functions inherited from vtkm::cont::ArrayHandle< T, StorageTag_ > | |
| VTKM_CONT | ArrayHandle () | 
| Constructs an empty ArrayHandle.  More... | |
| VTKM_CONT | ArrayHandle (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &src) | 
| Copy constructor.  More... | |
| VTKM_CONT | ArrayHandle (vtkm::cont::ArrayHandle< ValueType, StorageTag > &&src) noexcept | 
| Move constructor.  More... | |
| VTKM_CONT | ~ArrayHandle () | 
| Destructs an empty ArrayHandle.  More... | |
| VTKM_CONT vtkm::cont::ArrayHandle< ValueType, StorageTag > & | operator= (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &src) | 
| Copies an ArrayHandle.  More... | |
| VTKM_CONT vtkm::cont::ArrayHandle< ValueType, StorageTag > & | operator= (vtkm::cont::ArrayHandle< ValueType, StorageTag > &&src) noexcept | 
| Move and Assignment of an ArrayHandle.  More... | |
| VTKM_CONT bool | operator== (const ArrayHandle< ValueType, StorageTag > &rhs) const | 
Like a pointer, two ArrayHandles are considered equal if they point to the same location in memory.  More... | |
| VTKM_CONT bool | operator!= (const ArrayHandle< ValueType, StorageTag > &rhs) const | 
| template<typename VT , typename ST > | |
| VTKM_CONT bool | operator== (const ArrayHandle< VT, ST > &) const | 
| template<typename VT , typename ST > | |
| VTKM_CONT bool | operator!= (const ArrayHandle< VT, ST > &) const | 
| VTKM_CONT StorageType | GetStorage () const | 
| Get the storage.  More... | |
| VTKM_CONT WritePortalType | WritePortal () const | 
| Get an array portal that can be used in the control environment.  More... | |
| VTKM_CONT WritePortalType | WritePortal (vtkm::cont::Token &token) const | 
| VTKM_CONT vtkm::Id | GetNumberOfValues () const | 
| Returns the number of entries in the array.  More... | |
| VTKM_CONT void | ReleaseResourcesExecution () const | 
| Releases any resources being used in the execution environment (that are not being shared by the control environment).  More... | |
| VTKM_CONT void | ReleaseResources () const | 
| Releases all resources in both the control and execution environments.  More... | |
| VTKM_CONT 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... | |
| VTKM_CONT 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... | |
| VTKM_CONT 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... | |
| VTKM_CONT bool | IsOnDevice (vtkm::cont::DeviceAdapterId device) const | 
| Returns true if the ArrayHandle's data is on the given device.  More... | |
| VTKM_CONT bool | IsOnHost () const | 
| Returns true if the ArrayHandle's data is on the host.  More... | |
| VTKM_CONT void | SyncControlArray () const | 
| Synchronizes the control array with the execution array.  More... | |
| VTKM_CONT void | Enqueue (const vtkm::cont::Token &token) const | 
| Enqueue a token for access to this ArrayHandle.  More... | |
| VTKM_CONT void | DeepCopyFrom (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &source) const | 
| Deep copies the data in the array.  More... | |
| const VTKM_CONT std::vector< vtkm::cont::internal::Buffer > & | GetBuffers () const | 
Returns the internal Buffer structures that hold the data.  More... | |
| VTKM_CONT std::vector< vtkm::cont::internal::Buffer > & | GetBuffers () | 
| VTKM_CONT | ArrayHandle (const std::vector< vtkm::cont::internal::Buffer > &buffers) | 
| VTKM_CONT | ArrayHandle (std::vector< vtkm::cont::internal::Buffer > &&buffers) noexcept | 
| VTKM_CONT ReadPortalType | ReadPortal () const | 
| Get an array portal that can be used in the control environment.  More... | |
| VTKM_CONT ReadPortalType | ReadPortal (vtkm::cont::Token &token) const | 
| Get an array portal that can be used in the control environment.  More... | |
| VTKM_CONT 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... | |
| VTKM_CONT 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... | |
| VTKM_CONT 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... | |
| VTKM_CONT 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... | |
| VTKM_CONT void | Fill (const ValueType &fillValue, vtkm::Id startIndex, vtkm::Id endIndex, vtkm::cont::Token &token) const | 
| Fills the array with a given value.  More... | |
| VTKM_CONT void | Fill (const ValueType &fillValue, vtkm::Id startIndex, vtkm::Id endIndex) const | 
| Fills the array with a given value.  More... | |
| VTKM_CONT void | Fill (const ValueType &fillValue, vtkm::Id startIndex=0) const | 
| Fills the array with a given value.  More... | |
Additional Inherited Members | |
  Protected Member Functions inherited from vtkm::cont::ArrayHandle< T, StorageTag_ > | |
| VTKM_CONT void | SetBuffer (vtkm::IdComponent index, const vtkm::cont::internal::Buffer &buffer) | 
| VTKM_CONT void | SetBuffers (const std::vector< vtkm::cont::internal::Buffer > &buffers) | 
| VTKM_CONT void | SetBuffers (std::vector< vtkm::cont::internal::Buffer > &&buffers) | 
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 ge a new set of random bits, create a new ArrayHandleRandomUniformBits with a different seed.
      
  | 
  inlineexplicit | 
The type of seed is specifically designed to be an vtkm::Vec<> to provide type safety for the parameters so user will not transpose two integer parameters.
| vtkm::cont::ArrayHandleRandomUniformBits::VTKM_ARRAY_HANDLE_SUBCLASS_NT | ( | ArrayHandleRandomUniformBits | , | 
| (vtkm::cont::ArrayHandleImplicit< detail::PhiloxFunctor >) | |||
| ) | 
 1.8.17