Viskores
1.0
|
#include <viskores/List.h>
#include <viskores/internal/Windows.h>
#include <atomic>
#include <cstdint>
#include <cstring>
#include <viskoresstd/bit_cast.h>
Go to the source code of this file.
Namespaces | |
viskores | |
Groups connected points that have the same field value. | |
Typedefs | |
using | viskores::AtomicTypePreferred = viskores::UInt32 |
The preferred type to use for atomic operations. More... | |
using | viskores::AtomicTypesSupported = viskores::List< viskores::UInt32, viskores::UInt64 > |
A list of types that can be used with atomic operations. More... | |
Enumerations | |
enum | viskores::MemoryOrder { viskores::MemoryOrder::Relaxed, viskores::MemoryOrder::Acquire, viskores::MemoryOrder::Release, viskores::MemoryOrder::AcquireAndRelease, viskores::MemoryOrder::SequentiallyConsistent } |
Specifies memory order semantics for atomic operations. More... | |
Functions | |
template<typename T > | |
T | viskores::AtomicLoad (T *const pointer, viskores::MemoryOrder order=viskores::MemoryOrder::Acquire) |
Atomic function to load a value from a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicNot (T *pointer, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to NOT bits to a shared memory location. More... | |
template<typename T > | |
bool | viskores::AtomicCompareExchange (T *shared, T *expected, T desired, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function that replaces a value given a condition. More... | |
template<typename T > | |
void | viskores::AtomicStore (T *pointer, T value, viskores::MemoryOrder order=viskores::MemoryOrder::Release) |
Atomic function to save a value to a shared memory location. More... | |
template<typename T > | |
void | viskores::AtomicStore (T *pointer, detail::OppositeSign< T > value, viskores::MemoryOrder order=viskores::MemoryOrder::Release) |
Atomic function to save a value to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicAdd (T *pointer, T operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to add a value to a shared memory location. More... | |
template<typename T , typename std::enable_if< std::is_integral< T >::value >::type * = nullptr> | |
T | viskores::AtomicAdd (T *pointer, detail::OppositeSign< T > operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to add a value to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicAnd (T *pointer, T operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to AND bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicAnd (T *pointer, detail::OppositeSign< T > operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to AND bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicOr (T *pointer, T operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to OR bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicOr (T *pointer, detail::OppositeSign< T > operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to OR bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicXor (T *pointer, T operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to XOR bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicXor (T *pointer, detail::OppositeSign< T > operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to XOR bits to a shared memory location. More... | |
template<typename T > | |
void | viskores::AtomicStore (T *pointer, T value, viskores::MemoryOrder order=viskores::MemoryOrder::Release) |
Atomic function to save a value to a shared memory location. More... | |
template<typename T > | |
void | viskores::AtomicStore (T *pointer, detail::OppositeSign< T > value, viskores::MemoryOrder order=viskores::MemoryOrder::Release) |
Atomic function to save a value to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicAdd (T *pointer, T operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to add a value to a shared memory location. More... | |
template<typename T , typename std::enable_if< std::is_integral< T >::value >::type * = nullptr> | |
T | viskores::AtomicAdd (T *pointer, detail::OppositeSign< T > operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to add a value to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicAnd (T *pointer, T operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to AND bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicAnd (T *pointer, detail::OppositeSign< T > operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to AND bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicOr (T *pointer, T operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to OR bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicOr (T *pointer, detail::OppositeSign< T > operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to OR bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicXor (T *pointer, T operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to XOR bits to a shared memory location. More... | |
template<typename T > | |
T | viskores::AtomicXor (T *pointer, detail::OppositeSign< T > operand, viskores::MemoryOrder order=viskores::MemoryOrder::SequentiallyConsistent) |
Atomic function to XOR bits to a shared memory location. More... | |