mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-16 17:22:55 +00:00
Fixed compiler warning for char type with kxsort
Added check for long double arrays, use TBB parallel_sort Added radix sort instantiations for char16_t, char32_t, and wchar_t. std::is_arithmetic<T> will evaluate to true for these types. Removed VTKM_CONT_EXPORT in DeviceAdapterAlgorithmTBB.h to try and fix dll related error on Windows.
This commit is contained in:
parent
8f75df65c5
commit
30f6e53c27
@ -255,23 +255,23 @@ public:
|
||||
}
|
||||
|
||||
template <typename T, class Container, class BinaryCompare>
|
||||
VTKM_CONT_EXPORT static void Sort(vtkm::cont::ArrayHandle<T, Container>& values,
|
||||
BinaryCompare binary_compare)
|
||||
VTKM_CONT static void Sort(vtkm::cont::ArrayHandle<T, Container>& values,
|
||||
BinaryCompare binary_compare)
|
||||
{
|
||||
vtkm::cont::tbb::internal::parallel_sort(values, binary_compare);
|
||||
}
|
||||
|
||||
template <typename T, typename U, class StorageT, class StorageU>
|
||||
VTKM_CONT_EXPORT static void SortByKey(vtkm::cont::ArrayHandle<T, StorageT>& keys,
|
||||
vtkm::cont::ArrayHandle<U, StorageU>& values)
|
||||
VTKM_CONT static void SortByKey(vtkm::cont::ArrayHandle<T, StorageT>& keys,
|
||||
vtkm::cont::ArrayHandle<U, StorageU>& values)
|
||||
{
|
||||
vtkm::cont::tbb::internal::parallel_sort_bykey(keys, values, std::less<T>());
|
||||
}
|
||||
|
||||
template <typename T, typename U, class StorageT, class StorageU, class BinaryCompare>
|
||||
VTKM_CONT_EXPORT static void SortByKey(vtkm::cont::ArrayHandle<T, StorageT>& keys,
|
||||
vtkm::cont::ArrayHandle<U, StorageU>& values,
|
||||
BinaryCompare binary_compare)
|
||||
VTKM_CONT static void SortByKey(vtkm::cont::ArrayHandle<T, StorageT>& keys,
|
||||
vtkm::cont::ArrayHandle<U, StorageU>& values,
|
||||
BinaryCompare binary_compare)
|
||||
{
|
||||
vtkm::cont::tbb::internal::parallel_sort_bykey(keys, values, binary_compare);
|
||||
}
|
||||
|
@ -888,7 +888,6 @@ KX_SORT_KEYS(unsigned long int);
|
||||
KX_SORT_KEYS(long long int);
|
||||
KX_SORT_KEYS(unsigned long long int);
|
||||
KX_SORT_KEYS(unsigned char);
|
||||
KX_SORT_KEYS(char);
|
||||
|
||||
#undef KX_SORT_KEYS
|
||||
|
||||
@ -935,7 +934,6 @@ bool use_serial_sort_keys(T* data, size_t num_elems, const CompareType& comp)
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
VTKM_TBB_SORT_EXPORT(short int);
|
||||
VTKM_TBB_SORT_EXPORT(unsigned short int);
|
||||
VTKM_TBB_SORT_EXPORT(int);
|
||||
@ -947,6 +945,9 @@ VTKM_TBB_SORT_EXPORT(unsigned long long int);
|
||||
VTKM_TBB_SORT_EXPORT(unsigned char);
|
||||
VTKM_TBB_SORT_EXPORT(signed char);
|
||||
VTKM_TBB_SORT_EXPORT(char);
|
||||
VTKM_TBB_SORT_EXPORT(char16_t);
|
||||
VTKM_TBB_SORT_EXPORT(char32_t);
|
||||
VTKM_TBB_SORT_EXPORT(wchar_t);
|
||||
VTKM_TBB_SORT_EXPORT(float);
|
||||
VTKM_TBB_SORT_EXPORT(double);
|
||||
|
||||
|
@ -93,9 +93,11 @@ template <typename T, typename BinaryCompare>
|
||||
struct sort_tag_type<T, vtkm::cont::StorageTagBasic, BinaryCompare>
|
||||
{
|
||||
using PrimT = std::is_arithmetic<T>;
|
||||
using LongDT = std::is_same<T, long double>;
|
||||
using BComp = is_valid_compare_type<BinaryCompare>;
|
||||
using type =
|
||||
typename std::conditional<PrimT::value && BComp::value, RadixSortTag, PSortTag>::type;
|
||||
using type = typename std::conditional<PrimT::value && BComp::value && !LongDT::value,
|
||||
RadixSortTag,
|
||||
PSortTag>::type;
|
||||
};
|
||||
|
||||
template <typename T, typename U, typename StorageTagT, typename StorageTagU, class BinaryCompare>
|
||||
@ -112,10 +114,12 @@ struct sortbykey_tag_type<T,
|
||||
{
|
||||
using PrimT = std::is_arithmetic<T>;
|
||||
using PrimU = std::is_arithmetic<U>;
|
||||
using LongDT = std::is_same<T, long double>;
|
||||
using BComp = is_valid_compare_type<BinaryCompare>;
|
||||
using type = typename std::conditional<PrimT::value && PrimU::value && BComp::value,
|
||||
RadixSortTag,
|
||||
PSortTag>::type;
|
||||
using type =
|
||||
typename std::conditional<PrimT::value && PrimU::value && BComp::value && !LongDT::value,
|
||||
RadixSortTag,
|
||||
PSortTag>::type;
|
||||
};
|
||||
|
||||
|
||||
@ -141,6 +145,9 @@ VTKM_TBB_SORT_EXPORT(unsigned long long int);
|
||||
VTKM_TBB_SORT_EXPORT(unsigned char);
|
||||
VTKM_TBB_SORT_EXPORT(signed char);
|
||||
VTKM_TBB_SORT_EXPORT(char);
|
||||
VTKM_TBB_SORT_EXPORT(char16_t);
|
||||
VTKM_TBB_SORT_EXPORT(char32_t);
|
||||
VTKM_TBB_SORT_EXPORT(wchar_t);
|
||||
VTKM_TBB_SORT_EXPORT(float);
|
||||
VTKM_TBB_SORT_EXPORT(double);
|
||||
#undef VTKM_TBB_SORT_EXPORT
|
||||
|
Loading…
Reference in New Issue
Block a user