mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-19 18:45:43 +00:00
Attempting type match
This commit is contained in:
parent
1448d0d3b4
commit
29ca4f38f6
@ -316,8 +316,14 @@ public:
|
|||||||
VTKM_EXEC_EXPORT
|
VTKM_EXEC_EXPORT
|
||||||
T Add(vtkm::Id index, const T& value) const
|
T Add(vtkm::Id index, const T& value) const
|
||||||
{
|
{
|
||||||
|
T* lockedValue;
|
||||||
|
#if defined(VTKM_MSVC)
|
||||||
|
typedef typename vtkm::cont::ArrayPortalToIterators<PortalType>::IteratorType IteratorType;
|
||||||
typename IteratorType::pointer temp = &(*(Iterators.GetBegin()+index));
|
typename IteratorType::pointer temp = &(*(Iterators.GetBegin()+index));
|
||||||
T* lockedValue = temp;
|
lockedValue = temp;
|
||||||
|
#else
|
||||||
|
lockedValue = (Iterators.GetBegin()+index);
|
||||||
|
#endif
|
||||||
return vtkmAtomicAdd(lockedValue, value);
|
return vtkmAtomicAdd(lockedValue, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,14 +331,15 @@ private:
|
|||||||
typedef typename vtkm::cont::ArrayHandle<T,vtkm::cont::StorageTagBasic>
|
typedef typename vtkm::cont::ArrayHandle<T,vtkm::cont::StorageTagBasic>
|
||||||
::template ExecutionTypes<DeviceAdapterTagTBB>::Portal PortalType;
|
::template ExecutionTypes<DeviceAdapterTagTBB>::Portal PortalType;
|
||||||
typedef vtkm::cont::ArrayPortalToIterators<PortalType> IteratorsType;
|
typedef vtkm::cont::ArrayPortalToIterators<PortalType> IteratorsType;
|
||||||
typedef typename vtkm::cont::ArrayPortalToIterators<PortalType>::IteratorType IteratorType;
|
|
||||||
IteratorsType Iterators;
|
IteratorsType Iterators;
|
||||||
|
|
||||||
VTKM_EXEC_EXPORT
|
VTKM_EXEC_EXPORT
|
||||||
vtkm::Int32 vtkmAtomicAdd(vtkm::Int32 *address, const vtkm::Int32 &value) const
|
vtkm::Int32 vtkmAtomicAdd(vtkm::Int32 *address, const vtkm::Int32 &value) const
|
||||||
{
|
{
|
||||||
#if defined(VTKM_MSVC)
|
#if defined(VTKM_MSVC)
|
||||||
return InterlockedExchangeAdd(address,value);
|
long msValue = value;
|
||||||
|
long * msPtr = (long *) address;
|
||||||
|
return InterlockedExchangeAdd(msPtr,msValue);
|
||||||
#else
|
#else
|
||||||
return __sync_fetch_and_add(address,value);
|
return __sync_fetch_and_add(address,value);
|
||||||
#endif
|
#endif
|
||||||
@ -342,7 +349,9 @@ private:
|
|||||||
vtkm::Int64 vtkmAtomicAdd(vtkm::Int64 *address, const vtkm::Int64 &value) const
|
vtkm::Int64 vtkmAtomicAdd(vtkm::Int64 *address, const vtkm::Int64 &value) const
|
||||||
{
|
{
|
||||||
#if defined(VTKM_MSVC)
|
#if defined(VTKM_MSVC)
|
||||||
return InterlockedExchangeAdd(address,value);
|
long long msValue = value;
|
||||||
|
long long * msPtr = (long long *) address;
|
||||||
|
return InterlockedExchangeAdd64(msPtr,msValue);
|
||||||
#else
|
#else
|
||||||
return __sync_fetch_and_add(address,value);
|
return __sync_fetch_and_add(address,value);
|
||||||
#endif
|
#endif
|
||||||
@ -352,7 +361,9 @@ private:
|
|||||||
vtkm::UInt32 vtkmAtomicAdd(vtkm::UInt32 *address, const vtkm::UInt32 &value) const
|
vtkm::UInt32 vtkmAtomicAdd(vtkm::UInt32 *address, const vtkm::UInt32 &value) const
|
||||||
{
|
{
|
||||||
#if defined(VTKM_MSVC)
|
#if defined(VTKM_MSVC)
|
||||||
return InterlockedExchangeAdd64(address,value);
|
unsigned long msValue = value;
|
||||||
|
unsinged long * msPtr = (unsigned long *) address;
|
||||||
|
return InterlockedExchangeAdd(msPtr,msValue);
|
||||||
#else
|
#else
|
||||||
return __sync_fetch_and_add(address,value);
|
return __sync_fetch_and_add(address,value);
|
||||||
#endif
|
#endif
|
||||||
@ -362,7 +373,9 @@ private:
|
|||||||
vtkm::UInt64 vtkmAtomicAdd(vtkm::UInt64 *address, const vtkm::UInt64 &value) const
|
vtkm::UInt64 vtkmAtomicAdd(vtkm::UInt64 *address, const vtkm::UInt64 &value) const
|
||||||
{
|
{
|
||||||
#if defined(VTKM_MSVC)
|
#if defined(VTKM_MSVC)
|
||||||
return InterlockedExchangeAdd64(address,value);
|
unsigned long long msValue = value;
|
||||||
|
unsigned long long * msPtr = (unsigend long long *) address;
|
||||||
|
return InterlockedExchangeAdd64(msPtr,msValue);
|
||||||
#else
|
#else
|
||||||
return __sync_fetch_and_add(address,value);
|
return __sync_fetch_and_add(address,value);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user