Switch over from static const to static constexpr where possible.
This commit is contained in:
parent
66e356f7d9
commit
7c54125b66
@ -96,7 +96,7 @@ struct CellShapeIdToTag
|
|||||||
#define VTKM_DEFINE_CELL_TAG(name, idname) \
|
#define VTKM_DEFINE_CELL_TAG(name, idname) \
|
||||||
struct CellShapeTag##name \
|
struct CellShapeTag##name \
|
||||||
{ \
|
{ \
|
||||||
static const vtkm::UInt8 Id = vtkm::idname; \
|
static constexpr vtkm::UInt8 Id = vtkm::idname; \
|
||||||
}; \
|
}; \
|
||||||
namespace internal \
|
namespace internal \
|
||||||
{ \
|
{ \
|
||||||
|
@ -81,7 +81,7 @@ struct CellTraits
|
|||||||
/// This is only defined for cell shapes of a fixed number of points (i.e.
|
/// This is only defined for cell shapes of a fixed number of points (i.e.
|
||||||
/// \c IsSizedFixed is set to \c CellTraitsTagSizeFixed.
|
/// \c IsSizedFixed is set to \c CellTraitsTagSizeFixed.
|
||||||
///
|
///
|
||||||
static const vtkm::IdComponent NUM_POINTS = 3;
|
static constexpr vtkm::IdComponent NUM_POINTS = 3;
|
||||||
};
|
};
|
||||||
#else // VTKM_DOXYGEN_ONLY
|
#else // VTKM_DOXYGEN_ONLY
|
||||||
;
|
;
|
||||||
|
@ -32,8 +32,8 @@ using HashType = vtkm::UInt32;
|
|||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::HashType FNV1A_OFFSET = 2166136261;
|
static constexpr vtkm::HashType FNV1A_OFFSET = 2166136261;
|
||||||
static const vtkm::HashType FNV1A_PRIME = 16777619;
|
static constexpr vtkm::HashType FNV1A_PRIME = 16777619;
|
||||||
|
|
||||||
/// \brief Performs an FNV-1a hash on 32-bit integers returning a 32-bit hash
|
/// \brief Performs an FNV-1a hash on 32-bit integers returning a 32-bit hash
|
||||||
///
|
///
|
||||||
|
@ -46,8 +46,8 @@ class Matrix
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using ComponentType = T;
|
using ComponentType = T;
|
||||||
static const vtkm::IdComponent NUM_ROWS = NumRow;
|
static constexpr vtkm::IdComponent NUM_ROWS = NumRow;
|
||||||
static const vtkm::IdComponent NUM_COLUMNS = NumCol;
|
static constexpr vtkm::IdComponent NUM_COLUMNS = NumCol;
|
||||||
|
|
||||||
VTKM_EXEC_CONT
|
VTKM_EXEC_CONT
|
||||||
Matrix() {}
|
Matrix() {}
|
||||||
@ -547,7 +547,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
using ComponentType = T;
|
using ComponentType = T;
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = NumRow * NumCol;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = NumRow * NumCol;
|
||||||
using HasMultipleComponents = vtkm::VecTraitsTagMultipleComponents;
|
using HasMultipleComponents = vtkm::VecTraitsTagMultipleComponents;
|
||||||
using IsSizeStatic = vtkm::VecTraitsTagSizeStatic;
|
using IsSizeStatic = vtkm::VecTraitsTagSizeStatic;
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ struct TypeListTagCommon : vtkm::ListTagBase<vtkm::Int32,
|
|||||||
template <typename Type>
|
template <typename Type>
|
||||||
struct ListContains<vtkm::TypeListTagAll, Type>
|
struct ListContains<vtkm::TypeListTagAll, Type>
|
||||||
{
|
{
|
||||||
static const bool value = true;
|
static constexpr bool value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace vtkm
|
} // namespace vtkm
|
||||||
|
@ -646,7 +646,7 @@ class VTKM_ALWAYS_EXPORT VecBase : public vtkm::detail::VecBaseCommon<T, Derived
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using ComponentType = T;
|
using ComponentType = T;
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = Size;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = Size;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
VTKM_EXEC_CONT
|
VTKM_EXEC_CONT
|
||||||
@ -805,7 +805,7 @@ class VTKM_ALWAYS_EXPORT Vec : public detail::VecBase<T, Size, Vec<T, Size>>
|
|||||||
public:
|
public:
|
||||||
#ifdef VTKM_DOXYGEN_ONLY
|
#ifdef VTKM_DOXYGEN_ONLY
|
||||||
using ComponentType = T;
|
using ComponentType = T;
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = Size;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = Size;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
VTKM_EXEC_CONT Vec() = default;
|
VTKM_EXEC_CONT Vec() = default;
|
||||||
@ -833,7 +833,7 @@ class VTKM_ALWAYS_EXPORT Vec<T, 0>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using ComponentType = T;
|
using ComponentType = T;
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = 0;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = 0;
|
||||||
|
|
||||||
VTKM_EXEC_CONT Vec() = default;
|
VTKM_EXEC_CONT Vec() = default;
|
||||||
VTKM_EXEC_CONT explicit Vec(const ComponentType&) {}
|
VTKM_EXEC_CONT explicit Vec(const ComponentType&) {}
|
||||||
|
@ -42,19 +42,19 @@ struct VecAxisAlignedPointCoordinatesNumComponents;
|
|||||||
template <>
|
template <>
|
||||||
struct VecAxisAlignedPointCoordinatesNumComponents<1>
|
struct VecAxisAlignedPointCoordinatesNumComponents<1>
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = 2;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = 2;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct VecAxisAlignedPointCoordinatesNumComponents<2>
|
struct VecAxisAlignedPointCoordinatesNumComponents<2>
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = 4;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct VecAxisAlignedPointCoordinatesNumComponents<3>
|
struct VecAxisAlignedPointCoordinatesNumComponents<3>
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = 8;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = 8;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct VecAxisAlignedPointCoordinatesOffsetTable
|
struct VecAxisAlignedPointCoordinatesOffsetTable
|
||||||
@ -90,7 +90,7 @@ class VecAxisAlignedPointCoordinates
|
|||||||
public:
|
public:
|
||||||
using ComponentType = vtkm::Vec<vtkm::FloatDefault, 3>;
|
using ComponentType = vtkm::Vec<vtkm::FloatDefault, 3>;
|
||||||
|
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS =
|
static constexpr vtkm::IdComponent NUM_COMPONENTS =
|
||||||
detail::VecAxisAlignedPointCoordinatesNumComponents<NumDimensions>::NUM_COMPONENTS;
|
detail::VecAxisAlignedPointCoordinatesNumComponents<NumDimensions>::NUM_COMPONENTS;
|
||||||
|
|
||||||
VTKM_EXEC_CONT
|
VTKM_EXEC_CONT
|
||||||
@ -160,7 +160,7 @@ struct VecTraits<vtkm::VecAxisAlignedPointCoordinates<NumDimensions>>
|
|||||||
using HasMultipleComponents = vtkm::VecTraitsTagMultipleComponents;
|
using HasMultipleComponents = vtkm::VecTraitsTagMultipleComponents;
|
||||||
using IsSizeStatic = vtkm::VecTraitsTagSizeStatic;
|
using IsSizeStatic = vtkm::VecTraitsTagSizeStatic;
|
||||||
|
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = VecType::NUM_COMPONENTS;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = VecType::NUM_COMPONENTS;
|
||||||
|
|
||||||
VTKM_EXEC_CONT
|
VTKM_EXEC_CONT
|
||||||
static vtkm::IdComponent GetNumberOfComponents(const VecType&) { return NUM_COMPONENTS; }
|
static vtkm::IdComponent GetNumberOfComponents(const VecType&) { return NUM_COMPONENTS; }
|
||||||
|
@ -84,7 +84,7 @@ struct VecTraits
|
|||||||
///
|
///
|
||||||
/// This is only defined for vectors of a static size.
|
/// This is only defined for vectors of a static size.
|
||||||
///
|
///
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = VecType::NUM_COMPONENTS;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = VecType::NUM_COMPONENTS;
|
||||||
|
|
||||||
/// Number of components in the given vector.
|
/// Number of components in the given vector.
|
||||||
///
|
///
|
||||||
@ -149,7 +149,7 @@ struct VecTraits<vtkm::Vec<T, Size>>
|
|||||||
|
|
||||||
/// Number of components in the vector.
|
/// Number of components in the vector.
|
||||||
///
|
///
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = VecType::NUM_COMPONENTS;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = VecType::NUM_COMPONENTS;
|
||||||
|
|
||||||
/// Number of components in the given vector.
|
/// Number of components in the given vector.
|
||||||
///
|
///
|
||||||
@ -335,7 +335,7 @@ template <typename ScalarType>
|
|||||||
struct VecTraitsBasic
|
struct VecTraitsBasic
|
||||||
{
|
{
|
||||||
using ComponentType = ScalarType;
|
using ComponentType = ScalarType;
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = 1;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = 1;
|
||||||
using HasMultipleComponents = vtkm::VecTraitsTagSingleComponent;
|
using HasMultipleComponents = vtkm::VecTraitsTagSingleComponent;
|
||||||
using IsSizeStatic = vtkm::VecTraitsTagSizeStatic;
|
using IsSizeStatic = vtkm::VecTraitsTagSizeStatic;
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ namespace detail
|
|||||||
template <typename ValueType>
|
template <typename ValueType>
|
||||||
struct VTKM_ALWAYS_EXPORT CompositeVectorSwizzleFunctor
|
struct VTKM_ALWAYS_EXPORT CompositeVectorSwizzleFunctor
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = vtkm::VecTraits<ValueType>::NUM_COMPONENTS;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = vtkm::VecTraits<ValueType>::NUM_COMPONENTS;
|
||||||
using ComponentMapType = vtkm::Vec<vtkm::IdComponent, NUM_COMPONENTS>;
|
using ComponentMapType = vtkm::Vec<vtkm::IdComponent, NUM_COMPONENTS>;
|
||||||
|
|
||||||
// Caution! This is a reference.
|
// Caution! This is a reference.
|
||||||
@ -183,7 +183,7 @@ class VTKM_ALWAYS_EXPORT ArrayPortalCompositeVector
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
using ValueType = typename PortalTypes::ResultType;
|
using ValueType = typename PortalTypes::ResultType;
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = vtkm::VecTraits<ValueType>::NUM_COMPONENTS;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = vtkm::VecTraits<ValueType>::NUM_COMPONENTS;
|
||||||
|
|
||||||
// Used internally.
|
// Used internally.
|
||||||
using ComponentMapType = vtkm::Vec<vtkm::IdComponent, NUM_COMPONENTS>;
|
using ComponentMapType = vtkm::Vec<vtkm::IdComponent, NUM_COMPONENTS>;
|
||||||
@ -262,7 +262,7 @@ class Storage<typename ArrayHandleCompositeVectorTraits<SignatureWithArrays>::Va
|
|||||||
vtkm::cont::internal::StorageTagCompositeVector<SignatureWithArrays>>
|
vtkm::cont::internal::StorageTagCompositeVector<SignatureWithArrays>>
|
||||||
{
|
{
|
||||||
using FunctionInterfaceWithArrays = vtkm::internal::FunctionInterface<SignatureWithArrays>;
|
using FunctionInterfaceWithArrays = vtkm::internal::FunctionInterface<SignatureWithArrays>;
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = FunctionInterfaceWithArrays::ARITY;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = FunctionInterfaceWithArrays::ARITY;
|
||||||
using ComponentMapType = vtkm::Vec<vtkm::IdComponent, NUM_COMPONENTS>;
|
using ComponentMapType = vtkm::Vec<vtkm::IdComponent, NUM_COMPONENTS>;
|
||||||
|
|
||||||
using FunctionInterfaceWithPortals =
|
using FunctionInterfaceWithPortals =
|
||||||
|
@ -229,18 +229,13 @@ public:
|
|||||||
|
|
||||||
/// Helper to determine if an ArrayHandle type is an ArrayHandleDiscard.
|
/// Helper to determine if an ArrayHandle type is an ArrayHandleDiscard.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct IsArrayHandleDiscard;
|
struct IsArrayHandleDiscard : std::false_type
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct IsArrayHandleDiscard<ArrayHandle<T, internal::StorageTagDiscard>> : std::true_type
|
struct IsArrayHandleDiscard<ArrayHandle<T, internal::StorageTagDiscard>> : std::true_type
|
||||||
{
|
{
|
||||||
static const bool Value = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T, typename U>
|
|
||||||
struct IsArrayHandleDiscard<ArrayHandle<T, U>> : std::false_type
|
|
||||||
{
|
|
||||||
static const bool Value = false;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace cont
|
} // end namespace cont
|
||||||
|
@ -40,7 +40,7 @@ public:
|
|||||||
using Traits = vtkm::VecTraits<VectorType>;
|
using Traits = vtkm::VecTraits<VectorType>;
|
||||||
using ValueType = typename Traits::ComponentType;
|
using ValueType = typename Traits::ComponentType;
|
||||||
|
|
||||||
static const vtkm::IdComponent COMPONENT = Component;
|
static constexpr vtkm::IdComponent COMPONENT = Component;
|
||||||
|
|
||||||
VTKM_EXEC_CONT
|
VTKM_EXEC_CONT
|
||||||
ArrayPortalExtractComponent()
|
ArrayPortalExtractComponent()
|
||||||
@ -90,7 +90,7 @@ private:
|
|||||||
template <typename ArrayHandleType, vtkm::IdComponent Component>
|
template <typename ArrayHandleType, vtkm::IdComponent Component>
|
||||||
class StorageTagExtractComponent
|
class StorageTagExtractComponent
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent COMPONENT = Component;
|
static constexpr vtkm::IdComponent COMPONENT = Component;
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace internal
|
namespace internal
|
||||||
@ -270,7 +270,7 @@ class ArrayHandleExtractComponent
|
|||||||
StorageTagExtractComponent<ArrayHandleType, Component>>
|
StorageTagExtractComponent<ArrayHandleType, Component>>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static const vtkm::IdComponent COMPONENT = Component;
|
static constexpr vtkm::IdComponent COMPONENT = Component;
|
||||||
|
|
||||||
VTKM_ARRAY_HANDLE_SUBCLASS(
|
VTKM_ARRAY_HANDLE_SUBCLASS(
|
||||||
ArrayHandleExtractComponent,
|
ArrayHandleExtractComponent,
|
||||||
|
@ -36,7 +36,7 @@ template <typename _SourcePortalType, vtkm::IdComponent _NUM_COMPONENTS>
|
|||||||
class VTKM_ALWAYS_EXPORT ArrayPortalGroupVec
|
class VTKM_ALWAYS_EXPORT ArrayPortalGroupVec
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = _NUM_COMPONENTS;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = _NUM_COMPONENTS;
|
||||||
using SourcePortalType = _SourcePortalType;
|
using SourcePortalType = _SourcePortalType;
|
||||||
|
|
||||||
using ComponentType = typename std::remove_const<typename SourcePortalType::ValueType>::type;
|
using ComponentType = typename std::remove_const<typename SourcePortalType::ValueType>::type;
|
||||||
|
@ -63,7 +63,7 @@ struct ValidateComponentMap;
|
|||||||
template <vtkm::IdComponent InputSize, vtkm::IdComponent Head>
|
template <vtkm::IdComponent InputSize, vtkm::IdComponent Head>
|
||||||
struct ValidateComponentMap<InputSize, Head>
|
struct ValidateComponentMap<InputSize, Head>
|
||||||
{
|
{
|
||||||
static const bool Valid = Head >= 0 && Head < InputSize;
|
static constexpr bool Valid = Head >= 0 && Head < InputSize;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Recursive impl:
|
// Recursive impl:
|
||||||
@ -71,8 +71,8 @@ template <vtkm::IdComponent InputSize, vtkm::IdComponent Head, vtkm::IdComponent
|
|||||||
struct ValidateComponentMap<InputSize, Head, Tail...>
|
struct ValidateComponentMap<InputSize, Head, Tail...>
|
||||||
{
|
{
|
||||||
using Next = ValidateComponentMap<InputSize, Tail...>;
|
using Next = ValidateComponentMap<InputSize, Tail...>;
|
||||||
static const bool IsUnique = ComponentIsUnique<Head, Tail...>::IsUnique;
|
static constexpr bool IsUnique = ComponentIsUnique<Head, Tail...>::IsUnique;
|
||||||
static const bool Valid = Head >= 0 && Head < InputSize && IsUnique && Next::Valid;
|
static constexpr bool Valid = Head >= 0 && Head < InputSize && IsUnique && Next::Valid;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace internal
|
} // end namespace internal
|
||||||
@ -82,7 +82,8 @@ template <typename InputValueType, vtkm::IdComponent... ComponentMap>
|
|||||||
struct ArrayHandleSwizzleTraits
|
struct ArrayHandleSwizzleTraits
|
||||||
{
|
{
|
||||||
/// The number of elements in the ComponentMap.
|
/// The number of elements in the ComponentMap.
|
||||||
static const vtkm::IdComponent COUNT = static_cast<vtkm::IdComponent>(sizeof...(ComponentMap));
|
static constexpr vtkm::IdComponent COUNT =
|
||||||
|
static_cast<vtkm::IdComponent>(sizeof...(ComponentMap));
|
||||||
VTKM_STATIC_ASSERT_MSG(COUNT > 0, "Invalid ComponentMap: Cannot swizzle zero components.");
|
VTKM_STATIC_ASSERT_MSG(COUNT > 0, "Invalid ComponentMap: Cannot swizzle zero components.");
|
||||||
|
|
||||||
/// A std::array containing the ComponentMap for runtime querying.
|
/// A std::array containing the ComponentMap for runtime querying.
|
||||||
@ -114,7 +115,7 @@ struct ArrayHandleSwizzleTraits
|
|||||||
|
|
||||||
/// If true, we use all components in the input vector. If false, we'll need
|
/// If true, we use all components in the input vector. If false, we'll need
|
||||||
/// to make sure to preserve existing values on write.
|
/// to make sure to preserve existing values on write.
|
||||||
static const bool ALL_COMPS_USED = InputTraits::NUM_COMPONENTS == COUNT;
|
static constexpr bool ALL_COMPS_USED = InputTraits::NUM_COMPONENTS == COUNT;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template <vtkm::IdComponent OutputIndex, vtkm::IdComponent... Map>
|
template <vtkm::IdComponent OutputIndex, vtkm::IdComponent... Map>
|
||||||
@ -153,7 +154,7 @@ private:
|
|||||||
template <vtkm::IdComponent OutputIndex, vtkm::IdComponent Head>
|
template <vtkm::IdComponent OutputIndex, vtkm::IdComponent Head>
|
||||||
struct SwizzleImpl<OutputIndex, Head>
|
struct SwizzleImpl<OutputIndex, Head>
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent InputIndex = Head;
|
static constexpr vtkm::IdComponent InputIndex = Head;
|
||||||
|
|
||||||
void operator()(const InputType& in, OutputType& out) const
|
void operator()(const InputType& in, OutputType& out) const
|
||||||
{
|
{
|
||||||
@ -166,7 +167,7 @@ private:
|
|||||||
struct SwizzleImpl<OutputIndex, Head, Tail...>
|
struct SwizzleImpl<OutputIndex, Head, Tail...>
|
||||||
{
|
{
|
||||||
using Next = SwizzleImpl<OutputIndex + 1, Tail...>;
|
using Next = SwizzleImpl<OutputIndex + 1, Tail...>;
|
||||||
static const vtkm::IdComponent InputIndex = Head;
|
static constexpr vtkm::IdComponent InputIndex = Head;
|
||||||
|
|
||||||
void operator()(const InputType& in, OutputType& out) const
|
void operator()(const InputType& in, OutputType& out) const
|
||||||
{
|
{
|
||||||
@ -191,7 +192,7 @@ private:
|
|||||||
template <vtkm::IdComponent OutputIndex, vtkm::IdComponent Head>
|
template <vtkm::IdComponent OutputIndex, vtkm::IdComponent Head>
|
||||||
struct UnSwizzleImpl<OutputIndex, Head>
|
struct UnSwizzleImpl<OutputIndex, Head>
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent InputIndex = Head;
|
static constexpr vtkm::IdComponent InputIndex = Head;
|
||||||
|
|
||||||
void operator()(const OutputType& out, InputType& in) const
|
void operator()(const OutputType& out, InputType& in) const
|
||||||
{
|
{
|
||||||
@ -204,7 +205,7 @@ private:
|
|||||||
struct UnSwizzleImpl<OutputIndex, Head, Tail...>
|
struct UnSwizzleImpl<OutputIndex, Head, Tail...>
|
||||||
{
|
{
|
||||||
using Next = UnSwizzleImpl<OutputIndex + 1, Tail...>;
|
using Next = UnSwizzleImpl<OutputIndex + 1, Tail...>;
|
||||||
static const vtkm::IdComponent InputIndex = Head;
|
static constexpr vtkm::IdComponent InputIndex = Head;
|
||||||
|
|
||||||
void operator()(const OutputType& out, InputType& in) const
|
void operator()(const OutputType& out, InputType& in) const
|
||||||
{
|
{
|
||||||
|
@ -46,7 +46,7 @@ struct TypeCheck
|
|||||||
/// The static constant boolean \c value is set to \c true if the type is
|
/// The static constant boolean \c value is set to \c true if the type is
|
||||||
/// valid for the given check tag and \c false otherwise.
|
/// valid for the given check tag and \c false otherwise.
|
||||||
///
|
///
|
||||||
static const bool value = false;
|
static constexpr bool value = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,13 +51,13 @@ struct TypeCheckArrayValueType;
|
|||||||
template <typename TypeList, typename ArrayType>
|
template <typename TypeList, typename ArrayType>
|
||||||
struct TypeCheckArrayValueType<TypeList, ArrayType, true>
|
struct TypeCheckArrayValueType<TypeList, ArrayType, true>
|
||||||
{
|
{
|
||||||
static const bool value = vtkm::ListContains<TypeList, typename ArrayType::ValueType>::value;
|
static constexpr bool value = vtkm::ListContains<TypeList, typename ArrayType::ValueType>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename TypeList, typename ArrayType>
|
template <typename TypeList, typename ArrayType>
|
||||||
struct TypeCheckArrayValueType<TypeList, ArrayType, false>
|
struct TypeCheckArrayValueType<TypeList, ArrayType, false>
|
||||||
{
|
{
|
||||||
static const bool value = false;
|
static constexpr bool value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
@ -65,7 +65,7 @@ struct TypeCheckArrayValueType<TypeList, ArrayType, false>
|
|||||||
template <typename TypeList, typename ArrayType>
|
template <typename TypeList, typename ArrayType>
|
||||||
struct TypeCheck<TypeCheckTagArray<TypeList>, ArrayType>
|
struct TypeCheck<TypeCheckTagArray<TypeList>, ArrayType>
|
||||||
{
|
{
|
||||||
static const bool value = detail::TypeCheckArrayValueType<
|
static constexpr bool value = detail::TypeCheckArrayValueType<
|
||||||
TypeList,
|
TypeList,
|
||||||
ArrayType,
|
ArrayType,
|
||||||
vtkm::cont::internal::ArrayHandleCheck<ArrayType>::type::value>::value;
|
vtkm::cont::internal::ArrayHandleCheck<ArrayType>::type::value>::value;
|
||||||
|
@ -49,15 +49,15 @@ struct TypeCheckTagAtomicArray
|
|||||||
template <typename TypeList, typename ArrayType>
|
template <typename TypeList, typename ArrayType>
|
||||||
struct TypeCheck<TypeCheckTagAtomicArray<TypeList>, ArrayType>
|
struct TypeCheck<TypeCheckTagAtomicArray<TypeList>, ArrayType>
|
||||||
{
|
{
|
||||||
static const bool value = false;
|
static constexpr bool value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T, typename TypeList>
|
template <typename T, typename TypeList>
|
||||||
struct TypeCheck<TypeCheckTagAtomicArray<TypeList>,
|
struct TypeCheck<TypeCheckTagAtomicArray<TypeList>,
|
||||||
vtkm::cont::ArrayHandle<T, vtkm::cont::StorageTagBasic>>
|
vtkm::cont::ArrayHandle<T, vtkm::cont::StorageTagBasic>>
|
||||||
{
|
{
|
||||||
static const bool value = (vtkm::ListContains<TypeList, T>::value &&
|
static constexpr bool value = (vtkm::ListContains<TypeList, T>::value &&
|
||||||
vtkm::ListContains<vtkm::exec::AtomicArrayTypeListTag, T>::value);
|
vtkm::ListContains<vtkm::exec::AtomicArrayTypeListTag, T>::value);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ struct TypeCheckTagCellSet
|
|||||||
template <typename CellSetType>
|
template <typename CellSetType>
|
||||||
struct TypeCheck<TypeCheckTagCellSet, CellSetType>
|
struct TypeCheck<TypeCheckTagCellSet, CellSetType>
|
||||||
{
|
{
|
||||||
static const bool value = vtkm::cont::internal::CellSetCheck<CellSetType>::type::value;
|
static constexpr bool value = vtkm::cont::internal::CellSetCheck<CellSetType>::type::value;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,8 @@ struct TypeCheck<TypeCheckTagCellSetStructured, CellSetType>
|
|||||||
using is_2d_cellset = std::is_same<CellSetType, vtkm::cont::CellSetStructured<2>>;
|
using is_2d_cellset = std::is_same<CellSetType, vtkm::cont::CellSetStructured<2>>;
|
||||||
using is_1d_cellset = std::is_same<CellSetType, vtkm::cont::CellSetStructured<1>>;
|
using is_1d_cellset = std::is_same<CellSetType, vtkm::cont::CellSetStructured<1>>;
|
||||||
|
|
||||||
static const bool value = is_3d_cellset::value || is_2d_cellset::value || is_1d_cellset::value;
|
static constexpr bool value =
|
||||||
|
is_3d_cellset::value || is_2d_cellset::value || is_1d_cellset::value;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ struct TypeCheckTagKeys
|
|||||||
template <typename Type>
|
template <typename Type>
|
||||||
struct TypeCheck<TypeCheckTagKeys, Type>
|
struct TypeCheck<TypeCheckTagKeys, Type>
|
||||||
{
|
{
|
||||||
static const bool value = false;
|
static constexpr bool value = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename PortalType>
|
template <typename PortalType>
|
||||||
struct TestKernelIn : public vtkm::exec::FunctorBase
|
struct TestKernelIn : public vtkm::exec::FunctorBase
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename PortalType>
|
template <typename PortalType>
|
||||||
struct TestKernelInOut : public vtkm::exec::FunctorBase
|
struct TestKernelInOut : public vtkm::exec::FunctorBase
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename PortalType>
|
template <typename PortalType>
|
||||||
struct TestKernelOut : public vtkm::exec::FunctorBase
|
struct TestKernelOut : public vtkm::exec::FunctorBase
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
#define OFFSET 10
|
#define OFFSET 10
|
||||||
|
|
||||||
|
@ -430,7 +430,7 @@ public:
|
|||||||
|
|
||||||
// Don't bother with the keys_output if it's an ArrayHandleDiscard -- there
|
// Don't bother with the keys_output if it's an ArrayHandleDiscard -- there
|
||||||
// will be a runtime exception in Unique() otherwise:
|
// will be a runtime exception in Unique() otherwise:
|
||||||
if (!vtkm::cont::IsArrayHandleDiscard<KeysOutputType>::Value)
|
if (!vtkm::cont::IsArrayHandleDiscard<KeysOutputType>::value)
|
||||||
{
|
{
|
||||||
//find all the unique keys
|
//find all the unique keys
|
||||||
DerivedAlgorithm::Copy(keys, keys_output);
|
DerivedAlgorithm::Copy(keys, keys_output);
|
||||||
|
@ -47,7 +47,7 @@ struct DeviceAdapterTraits;
|
|||||||
template <typename DeviceAdapter>
|
template <typename DeviceAdapter>
|
||||||
struct DeviceAdapterTagCheck
|
struct DeviceAdapterTagCheck
|
||||||
{
|
{
|
||||||
static const bool Valid = false;
|
static constexpr bool Valid = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -68,12 +68,12 @@ struct DeviceAdapterTagCheck
|
|||||||
{ \
|
{ \
|
||||||
static DeviceAdapterId GetId() { return DeviceAdapterId(Id); } \
|
static DeviceAdapterId GetId() { return DeviceAdapterId(Id); } \
|
||||||
static DeviceAdapterNameType GetName() { return DeviceAdapterNameType(#Name); } \
|
static DeviceAdapterNameType GetName() { return DeviceAdapterNameType(#Name); } \
|
||||||
static const bool Valid = true; \
|
static constexpr bool Valid = true; \
|
||||||
}; \
|
}; \
|
||||||
template <> \
|
template <> \
|
||||||
struct DeviceAdapterTagCheck<vtkm::cont::DeviceAdapterTag##Name> \
|
struct DeviceAdapterTagCheck<vtkm::cont::DeviceAdapterTag##Name> \
|
||||||
{ \
|
{ \
|
||||||
static const bool Valid = true; \
|
static constexpr bool Valid = true; \
|
||||||
}; \
|
}; \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
@ -94,12 +94,12 @@ struct DeviceAdapterTagCheck
|
|||||||
{ \
|
{ \
|
||||||
static DeviceAdapterId GetId() { return DeviceAdapterId(Id); } \
|
static DeviceAdapterId GetId() { return DeviceAdapterId(Id); } \
|
||||||
static DeviceAdapterNameType GetName() { return DeviceAdapterNameType(#Name); } \
|
static DeviceAdapterNameType GetName() { return DeviceAdapterNameType(#Name); } \
|
||||||
static const bool Valid = false; \
|
static constexpr bool Valid = false; \
|
||||||
}; \
|
}; \
|
||||||
template <> \
|
template <> \
|
||||||
struct DeviceAdapterTagCheck<vtkm::cont::DeviceAdapterTag##Name> \
|
struct DeviceAdapterTagCheck<vtkm::cont::DeviceAdapterTag##Name> \
|
||||||
{ \
|
{ \
|
||||||
static const bool Valid = false; \
|
static constexpr bool Valid = false; \
|
||||||
}; \
|
}; \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ namespace
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
struct TemplatedTests
|
struct TemplatedTests
|
||||||
{
|
{
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
using ValueType = T;
|
using ValueType = T;
|
||||||
using ComponentType = typename vtkm::VecTraits<ValueType>::ComponentType;
|
using ComponentType = typename vtkm::VecTraits<ValueType>::ComponentType;
|
||||||
@ -76,7 +76,7 @@ struct TemplatedTests
|
|||||||
{
|
{
|
||||||
ValueType array[ARRAY_SIZE];
|
ValueType array[ARRAY_SIZE];
|
||||||
|
|
||||||
static const ComponentType ORIGINAL_VALUE = 109;
|
constexpr ComponentType ORIGINAL_VALUE = 109;
|
||||||
FillIterator(array, array + ARRAY_SIZE, ORIGINAL_VALUE);
|
FillIterator(array, array + ARRAY_SIZE, ORIGINAL_VALUE);
|
||||||
|
|
||||||
::vtkm::cont::internal::ArrayPortalFromIterators<ValueType*> portal(array, array + ARRAY_SIZE);
|
::vtkm::cont::internal::ArrayPortalFromIterators<ValueType*> portal(array, array + ARRAY_SIZE);
|
||||||
@ -124,7 +124,7 @@ struct TemplatedTests
|
|||||||
VTKM_TEST_ASSERT(CheckPortal(const_portal, ORIGINAL_VALUE),
|
VTKM_TEST_ASSERT(CheckPortal(const_portal, ORIGINAL_VALUE),
|
||||||
"Const portal iterator has bad value.");
|
"Const portal iterator has bad value.");
|
||||||
|
|
||||||
static const ComponentType SET_VALUE = 62;
|
constexpr ComponentType SET_VALUE = 62;
|
||||||
|
|
||||||
std::cout << " Check get/set methods." << std::endl;
|
std::cout << " Check get/set methods." << std::endl;
|
||||||
for (vtkm::Id index = 0; index < ARRAY_SIZE; index++)
|
for (vtkm::Id index = 0; index < ARRAY_SIZE; index++)
|
||||||
|
@ -39,7 +39,7 @@ namespace vtkm
|
|||||||
template <>
|
template <>
|
||||||
struct VecTraits<std::string>
|
struct VecTraits<std::string>
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = 1;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = 1;
|
||||||
using HasMultipleComponents = vtkm::VecTraitsTagSingleComponent;
|
using HasMultipleComponents = vtkm::VecTraitsTagSingleComponent;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ namespace
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
struct TemplatedTests
|
struct TemplatedTests
|
||||||
{
|
{
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
using ValueType = T;
|
using ValueType = T;
|
||||||
using ComponentType = typename vtkm::VecTraits<ValueType>::ComponentType;
|
using ComponentType = typename vtkm::VecTraits<ValueType>::ComponentType;
|
||||||
|
@ -50,7 +50,7 @@ void DeviceAdapterAlgorithm<vtkm::cont::DeviceAdapterTagTBB>::ScheduleTask(
|
|||||||
vtkm::exec::tbb::internal::TaskTiling3D& functor,
|
vtkm::exec::tbb::internal::TaskTiling3D& functor,
|
||||||
vtkm::Id3 size)
|
vtkm::Id3 size)
|
||||||
{
|
{
|
||||||
static const vtkm::UInt32 TBB_GRAIN_SIZE_3D[3] = { 1, 4, 256 };
|
static constexpr vtkm::UInt32 TBB_GRAIN_SIZE_3D[3] = { 1, 4, 256 };
|
||||||
const vtkm::Id MESSAGE_SIZE = 1024;
|
const vtkm::Id MESSAGE_SIZE = 1024;
|
||||||
char errorString[MESSAGE_SIZE];
|
char errorString[MESSAGE_SIZE];
|
||||||
errorString[0] = '\0';
|
errorString[0] = '\0';
|
||||||
|
@ -88,7 +88,7 @@ using WrappedBinaryOperator = vtkm::cont::internal::WrappedBinaryOperator<Result
|
|||||||
|
|
||||||
// The "grain size" of scheduling with TBB. Not a lot of thought has gone
|
// The "grain size" of scheduling with TBB. Not a lot of thought has gone
|
||||||
// into picking this size.
|
// into picking this size.
|
||||||
static const vtkm::Id TBB_GRAIN_SIZE = 1024;
|
static constexpr vtkm::Id TBB_GRAIN_SIZE = 1024;
|
||||||
|
|
||||||
template <typename InputPortalType, typename OutputPortalType>
|
template <typename InputPortalType, typename OutputPortalType>
|
||||||
struct CopyBody
|
struct CopyBody
|
||||||
|
@ -686,7 +686,7 @@ private:
|
|||||||
size_t max_elems_;
|
size_t max_elems_;
|
||||||
int max_threads_;
|
int max_threads_;
|
||||||
|
|
||||||
static const size_t kOutBufferSize = internal::kOutBufferSize;
|
static constexpr size_t kOutBufferSize = internal::kOutBufferSize;
|
||||||
ValueType *original_, *tmp_;
|
ValueType *original_, *tmp_;
|
||||||
ValueType *src_, *dst_;
|
ValueType *src_, *dst_;
|
||||||
ValueType*** out_buf_;
|
ValueType*** out_buf_;
|
||||||
|
@ -72,7 +72,7 @@ class quick_sort_range : private no_assign
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static const size_t grainsize = 500;
|
static constexpr size_t grainsize = 500;
|
||||||
const Compare& comp;
|
const Compare& comp;
|
||||||
RandomAccessIterator begin;
|
RandomAccessIterator begin;
|
||||||
size_t size;
|
size_t size;
|
||||||
|
@ -31,17 +31,17 @@
|
|||||||
namespace kx
|
namespace kx
|
||||||
{
|
{
|
||||||
|
|
||||||
static const int kRadixBits = 8;
|
static constexpr int kRadixBits = 8;
|
||||||
static const size_t kInsertSortThreshold = 64;
|
static constexpr size_t kInsertSortThreshold = 64;
|
||||||
static const int kRadixMask = (1 << kRadixBits) - 1;
|
static constexpr int kRadixMask = (1 << kRadixBits) - 1;
|
||||||
static const int kRadixBin = 1 << kRadixBits;
|
static constexpr int kRadixBin = 1 << kRadixBits;
|
||||||
|
|
||||||
//================= HELPING FUNCTIONS ====================
|
//================= HELPING FUNCTIONS ====================
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
struct RadixTraitsUnsigned
|
struct RadixTraitsUnsigned
|
||||||
{
|
{
|
||||||
static const int nBytes = sizeof(T);
|
static constexpr int nBytes = sizeof(T);
|
||||||
int kth_byte(const T& x, int k) { return (x >> (kRadixBits * k)) & kRadixMask; }
|
int kth_byte(const T& x, int k) { return (x >> (kRadixBits * k)) & kRadixMask; }
|
||||||
bool compare(const T& x, const T& y) { return x < y; }
|
bool compare(const T& x, const T& y) { return x < y; }
|
||||||
};
|
};
|
||||||
@ -49,7 +49,7 @@ struct RadixTraitsUnsigned
|
|||||||
template <class T>
|
template <class T>
|
||||||
struct RadixTraitsSigned
|
struct RadixTraitsSigned
|
||||||
{
|
{
|
||||||
static const int nBytes = sizeof(T);
|
static constexpr int nBytes = sizeof(T);
|
||||||
static const T kMSB = T(0x80) << ((sizeof(T) - 1) * 8);
|
static const T kMSB = T(0x80) << ((sizeof(T) - 1) * 8);
|
||||||
int kth_byte(const T& x, int k) { return ((x ^ kMSB) >> (kRadixBits * k)) & kRadixMask; }
|
int kth_byte(const T& x, int k) { return ((x ^ kMSB) >> (kRadixBits * k)) & kRadixMask; }
|
||||||
bool compare(const T& x, const T& y) { return x < y; }
|
bool compare(const T& x, const T& y) { return x < y; }
|
||||||
|
@ -322,7 +322,7 @@ inline vtkm::cont::DataSet MakeTestDataSet::Make3DRegularDataSet0()
|
|||||||
dataSet.AddField(make_Field(
|
dataSet.AddField(make_Field(
|
||||||
"cellvar", vtkm::cont::Field::ASSOC_CELL_SET, "cells", cellvar, 4, vtkm::CopyFlag::On));
|
"cellvar", vtkm::cont::Field::ASSOC_CELL_SET, "cells", cellvar, 4, vtkm::CopyFlag::On));
|
||||||
|
|
||||||
static const vtkm::IdComponent dim = 3;
|
static constexpr vtkm::IdComponent dim = 3;
|
||||||
vtkm::cont::CellSetStructured<dim> cellSet("cells");
|
vtkm::cont::CellSetStructured<dim> cellSet("cells");
|
||||||
cellSet.SetPointDimensions(vtkm::make_Vec(3, 2, 3));
|
cellSet.SetPointDimensions(vtkm::make_Vec(3, 2, 3));
|
||||||
dataSet.AddCellSet(cellSet);
|
dataSet.AddCellSet(cellSet);
|
||||||
@ -349,7 +349,7 @@ inline vtkm::cont::DataSet MakeTestDataSet::Make3DRegularDataSet1()
|
|||||||
dataSet.AddField(make_Field(
|
dataSet.AddField(make_Field(
|
||||||
"cellvar", vtkm::cont::Field::ASSOC_CELL_SET, "cells", cellvar, 1, vtkm::CopyFlag::On));
|
"cellvar", vtkm::cont::Field::ASSOC_CELL_SET, "cells", cellvar, 1, vtkm::CopyFlag::On));
|
||||||
|
|
||||||
static const vtkm::IdComponent dim = 3;
|
static constexpr vtkm::IdComponent dim = 3;
|
||||||
vtkm::cont::CellSetStructured<dim> cellSet("cells");
|
vtkm::cont::CellSetStructured<dim> cellSet("cells");
|
||||||
cellSet.SetPointDimensions(vtkm::make_Vec(2, 2, 2));
|
cellSet.SetPointDimensions(vtkm::make_Vec(2, 2, 2));
|
||||||
dataSet.AddCellSet(cellSet);
|
dataSet.AddCellSet(cellSet);
|
||||||
|
@ -75,7 +75,7 @@ private:
|
|||||||
static void TestAll()
|
static void TestAll()
|
||||||
{
|
{
|
||||||
using PointType = vtkm::Vec<vtkm::FloatDefault, 3>;
|
using PointType = vtkm::Vec<vtkm::FloatDefault, 3>;
|
||||||
static const vtkm::Id length = 64;
|
static constexpr vtkm::Id length = 64;
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<PointType> out;
|
vtkm::cont::ArrayHandle<PointType> out;
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ struct TestingArrayHandles
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const vtkm::Id ARRAY_SIZE = 100;
|
static constexpr vtkm::Id ARRAY_SIZE = 100;
|
||||||
|
|
||||||
using Algorithm = vtkm::cont::DeviceAdapterAlgorithm<DeviceAdapterTag>;
|
using Algorithm = vtkm::cont::DeviceAdapterAlgorithm<DeviceAdapterTag>;
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ namespace
|
|||||||
// need to ensure we instatiate each algorithm in a source
|
// need to ensure we instatiate each algorithm in a source
|
||||||
// file to verify compilation.
|
// file to verify compilation.
|
||||||
//
|
//
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
void CopyTest()
|
void CopyTest()
|
||||||
{
|
{
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename PortalType>
|
template <typename PortalType>
|
||||||
void TestValues(const PortalType& portal)
|
void TestValues(const PortalType& portal)
|
||||||
|
@ -38,8 +38,8 @@ namespace UnitTestArrayHandleDiscardDetail
|
|||||||
template <typename ValueType>
|
template <typename ValueType>
|
||||||
struct Test
|
struct Test
|
||||||
{
|
{
|
||||||
static const vtkm::Id ARRAY_SIZE = 100;
|
static constexpr vtkm::Id ARRAY_SIZE = 100;
|
||||||
static const vtkm::Id NUM_KEYS = 3;
|
static constexpr vtkm::Id NUM_KEYS = 3;
|
||||||
|
|
||||||
using DeviceTag = vtkm::cont::DeviceAdapterTagSerial;
|
using DeviceTag = vtkm::cont::DeviceAdapterTagSerial;
|
||||||
using Algorithm = vtkm::cont::DeviceAdapterAlgorithm<DeviceTag>;
|
using Algorithm = vtkm::cont::DeviceAdapterAlgorithm<DeviceTag>;
|
||||||
|
@ -30,7 +30,7 @@ namespace
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
struct TemplatedTests
|
struct TemplatedTests
|
||||||
{
|
{
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
using ValueType = T;
|
using ValueType = T;
|
||||||
using ComponentType = typename vtkm::VecTraits<ValueType>::ComponentType;
|
using ComponentType = typename vtkm::VecTraits<ValueType>::ComponentType;
|
||||||
|
@ -53,7 +53,7 @@ namespace vtkm
|
|||||||
template <>
|
template <>
|
||||||
struct VecTraits<std::string>
|
struct VecTraits<std::string>
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent NUM_COMPONENTS = 1;
|
static constexpr vtkm::IdComponent NUM_COMPONENTS = 1;
|
||||||
using HasMultipleComponents = vtkm::VecTraitsTagSingleComponent;
|
using HasMultipleComponents = vtkm::VecTraitsTagSingleComponent;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
struct TryExecuteTestFunctor
|
struct TryExecuteTestFunctor
|
||||||
{
|
{
|
||||||
|
@ -41,7 +41,7 @@ namespace arg
|
|||||||
template <vtkm::IdComponent ControlSignatureIndex>
|
template <vtkm::IdComponent ControlSignatureIndex>
|
||||||
struct BasicArg : vtkm::exec::arg::ExecutionSignatureTagBase
|
struct BasicArg : vtkm::exec::arg::ExecutionSignatureTagBase
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent INDEX = ControlSignatureIndex;
|
static constexpr vtkm::IdComponent INDEX = ControlSignatureIndex;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagDefault;
|
using AspectTag = vtkm::exec::arg::AspectTagDefault;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ struct AspectTagCellShape
|
|||||||
///
|
///
|
||||||
struct CellShape : vtkm::exec::arg::ExecutionSignatureTagBase
|
struct CellShape : vtkm::exec::arg::ExecutionSignatureTagBase
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagCellShape;
|
using AspectTag = vtkm::exec::arg::AspectTagCellShape;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ namespace internal
|
|||||||
template <typename ExecutionSignatureTag>
|
template <typename ExecutionSignatureTag>
|
||||||
struct ExecutionSignatureTagCheck
|
struct ExecutionSignatureTagCheck
|
||||||
{
|
{
|
||||||
static const bool Valid =
|
static constexpr bool Valid =
|
||||||
std::is_base_of<vtkm::exec::arg::ExecutionSignatureTagBase, ExecutionSignatureTag>::value;
|
std::is_base_of<vtkm::exec::arg::ExecutionSignatureTagBase, ExecutionSignatureTag>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ struct AspectTagFromCount
|
|||||||
///
|
///
|
||||||
struct FromCount : vtkm::exec::arg::ExecutionSignatureTagBase
|
struct FromCount : vtkm::exec::arg::ExecutionSignatureTagBase
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagFromCount;
|
using AspectTag = vtkm::exec::arg::AspectTagFromCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ struct AspectTagFromIndices
|
|||||||
///
|
///
|
||||||
struct FromIndices : vtkm::exec::arg::ExecutionSignatureTagBase
|
struct FromIndices : vtkm::exec::arg::ExecutionSignatureTagBase
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagFromIndices;
|
using AspectTag = vtkm::exec::arg::AspectTagFromIndices;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ struct InputIndex : vtkm::exec::arg::ExecutionSignatureTagBase
|
|||||||
// ControlSignature because the templating is going to grab a fetch tag
|
// ControlSignature because the templating is going to grab a fetch tag
|
||||||
// whether we use it or not. 1 should be guaranteed to be valid since you
|
// whether we use it or not. 1 should be guaranteed to be valid since you
|
||||||
// need at least one argument for the input domain.
|
// need at least one argument for the input domain.
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagInputIndex;
|
using AspectTag = vtkm::exec::arg::AspectTagInputIndex;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ struct AspectTagOnBoundary
|
|||||||
///
|
///
|
||||||
struct OnBoundary : vtkm::exec::arg::ExecutionSignatureTagBase
|
struct OnBoundary : vtkm::exec::arg::ExecutionSignatureTagBase
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagOnBoundary;
|
using AspectTag = vtkm::exec::arg::AspectTagOnBoundary;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ struct OutputIndex : vtkm::exec::arg::ExecutionSignatureTagBase
|
|||||||
// ControlSignature because the templating is going to grab a fetch tag
|
// ControlSignature because the templating is going to grab a fetch tag
|
||||||
// whether we use it or not. 1 should be guaranteed to be valid since you
|
// whether we use it or not. 1 should be guaranteed to be valid since you
|
||||||
// need at least one argument for the output domain.
|
// need at least one argument for the output domain.
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagOutputIndex;
|
using AspectTag = vtkm::exec::arg::AspectTagOutputIndex;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ struct ThreadIndices : vtkm::exec::arg::ExecutionSignatureTagBase
|
|||||||
// ControlSignature because the templating is going to grab a fetch tag
|
// ControlSignature because the templating is going to grab a fetch tag
|
||||||
// whether we use it or not. 1 should be guaranteed to be valid since you
|
// whether we use it or not. 1 should be guaranteed to be valid since you
|
||||||
// need at least one argument for the input domain.
|
// need at least one argument for the input domain.
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagThreadIndices;
|
using AspectTag = vtkm::exec::arg::AspectTagThreadIndices;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ struct AspectTagValueCount
|
|||||||
///
|
///
|
||||||
struct ValueCount : vtkm::exec::arg::ExecutionSignatureTagBase
|
struct ValueCount : vtkm::exec::arg::ExecutionSignatureTagBase
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagValueCount;
|
using AspectTag = vtkm::exec::arg::AspectTagValueCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ struct VisitIndex : vtkm::exec::arg::ExecutionSignatureTagBase
|
|||||||
// ControlSignature because the templating is going to grab a fetch tag
|
// ControlSignature because the templating is going to grab a fetch tag
|
||||||
// whether we use it or not. 1 should be guaranteed to be valid since you
|
// whether we use it or not. 1 should be guaranteed to be valid since you
|
||||||
// need at least one argument for the input domain.
|
// need at least one argument for the input domain.
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagVisitIndex;
|
using AspectTag = vtkm::exec::arg::AspectTagVisitIndex;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ struct WorkIndex : vtkm::exec::arg::ExecutionSignatureTagBase
|
|||||||
// ControlSignature because the templating is going to grab a fetch tag
|
// ControlSignature because the templating is going to grab a fetch tag
|
||||||
// whether we use it or not. 1 should be guaranteed to be valid since you
|
// whether we use it or not. 1 should be guaranteed to be valid since you
|
||||||
// need at least one argument for the input domain.
|
// need at least one argument for the input domain.
|
||||||
static const vtkm::IdComponent INDEX = 1;
|
static constexpr vtkm::IdComponent INDEX = 1;
|
||||||
using AspectTag = vtkm::exec::arg::AspectTagWorkIndex;
|
using AspectTag = vtkm::exec::arg::AspectTagWorkIndex;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct TestPortal
|
struct TestPortal
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
static vtkm::Id g_NumSets;
|
static vtkm::Id g_NumSets;
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
static vtkm::Id g_NumSets;
|
static vtkm::Id g_NumSets;
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct TestPortal
|
struct TestPortal
|
||||||
|
@ -99,7 +99,7 @@ template <> struct UseMultipleScalarTextureLoads<const vtkm::Vec<vtkm::Float64,
|
|||||||
template <typename T, typename Enable = void>
|
template <typename T, typename Enable = void>
|
||||||
struct load_through_texture
|
struct load_through_texture
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent WillUseTexture = 0;
|
static constexpr vtkm::IdComponent WillUseTexture = 0;
|
||||||
|
|
||||||
__device__ static T get(const T* const data) { return *data; }
|
__device__ static T get(const T* const data) { return *data; }
|
||||||
};
|
};
|
||||||
@ -111,7 +111,7 @@ template <typename T>
|
|||||||
struct load_through_texture<T, typename std::enable_if<UseScalarTextureLoad<const T>::value>::type>
|
struct load_through_texture<T, typename std::enable_if<UseScalarTextureLoad<const T>::value>::type>
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::IdComponent WillUseTexture = 1;
|
static constexpr vtkm::IdComponent WillUseTexture = 1;
|
||||||
|
|
||||||
__device__ static T get(const T* const data)
|
__device__ static T get(const T* const data)
|
||||||
{
|
{
|
||||||
@ -128,7 +128,7 @@ struct load_through_texture<T, typename std::enable_if<UseScalarTextureLoad<cons
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
struct load_through_texture<T, typename std::enable_if<UseVecTextureLoads<const T>::value>::type>
|
struct load_through_texture<T, typename std::enable_if<UseVecTextureLoads<const T>::value>::type>
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent WillUseTexture = 1;
|
static constexpr vtkm::IdComponent WillUseTexture = 1;
|
||||||
|
|
||||||
__device__ static T get(const T* const data)
|
__device__ static T get(const T* const data)
|
||||||
{
|
{
|
||||||
@ -189,7 +189,7 @@ struct load_through_texture<
|
|||||||
T,
|
T,
|
||||||
typename std::enable_if<UseMultipleScalarTextureLoads<const T>::value>::type>
|
typename std::enable_if<UseMultipleScalarTextureLoads<const T>::value>::type>
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent WillUseTexture = 1;
|
static constexpr vtkm::IdComponent WillUseTexture = 1;
|
||||||
|
|
||||||
using NonConstT = typename std::remove_const<T>::type;
|
using NonConstT = typename std::remove_const<T>::type;
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ struct InvocationToFetch
|
|||||||
// Expected fields from ExecutionSignatureTag. If these do not exist in
|
// Expected fields from ExecutionSignatureTag. If these do not exist in
|
||||||
// ExecutionSignatureTag, then something that is not really an execution
|
// ExecutionSignatureTag, then something that is not really an execution
|
||||||
// signature tag was used in an ExecutionSignature.
|
// signature tag was used in an ExecutionSignature.
|
||||||
static const vtkm::IdComponent ControlParameterIndex = ExecutionSignatureTag::INDEX;
|
static constexpr vtkm::IdComponent ControlParameterIndex = ExecutionSignatureTag::INDEX;
|
||||||
using AspectTag = typename ExecutionSignatureTag::AspectTag;
|
using AspectTag = typename ExecutionSignatureTag::AspectTag;
|
||||||
|
|
||||||
// Find the fetch tag from the control signature tag pointed to by
|
// Find the fetch tag from the control signature tag pointed to by
|
||||||
|
@ -127,7 +127,7 @@ struct InvocationToFetch
|
|||||||
// Expected fields from ExecutionSignatureTag. If these do not exist in
|
// Expected fields from ExecutionSignatureTag. If these do not exist in
|
||||||
// ExecutionSignatureTag, then something that is not really an execution
|
// ExecutionSignatureTag, then something that is not really an execution
|
||||||
// signature tag was used in an ExecutionSignature.
|
// signature tag was used in an ExecutionSignature.
|
||||||
static const vtkm::IdComponent ControlParameterIndex = ExecutionSignatureTag::INDEX;
|
static constexpr vtkm::IdComponent ControlParameterIndex = ExecutionSignatureTag::INDEX;
|
||||||
using AspectTag = typename ExecutionSignatureTag::AspectTag;
|
using AspectTag = typename ExecutionSignatureTag::AspectTag;
|
||||||
|
|
||||||
// Find the fetch tag from the control signature tag pointed to by
|
// Find the fetch tag from the control signature tag pointed to by
|
||||||
|
@ -67,7 +67,7 @@ struct LinearField
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const vtkm::IdComponent MAX_POINTS = 8;
|
static constexpr vtkm::IdComponent MAX_POINTS = 8;
|
||||||
|
|
||||||
template <typename CellShapeTag>
|
template <typename CellShapeTag>
|
||||||
void GetMinMaxPoints(CellShapeTag,
|
void GetMinMaxPoints(CellShapeTag,
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::IdComponent MAX_POINTS = 8;
|
static constexpr vtkm::IdComponent MAX_POINTS = 8;
|
||||||
|
|
||||||
template <typename CellShapeTag>
|
template <typename CellShapeTag>
|
||||||
void GetMinMaxPoints(CellShapeTag,
|
void GetMinMaxPoints(CellShapeTag,
|
||||||
|
@ -35,7 +35,7 @@ namespace
|
|||||||
|
|
||||||
std::mt19937 g_RandomGenerator;
|
std::mt19937 g_RandomGenerator;
|
||||||
|
|
||||||
static const vtkm::IdComponent MAX_POINTS = 8;
|
static constexpr vtkm::IdComponent MAX_POINTS = 8;
|
||||||
|
|
||||||
template <typename CellShapeTag>
|
template <typename CellShapeTag>
|
||||||
void GetMinMaxPoints(CellShapeTag,
|
void GetMinMaxPoints(CellShapeTag,
|
||||||
|
@ -31,9 +31,9 @@ using Coord3D = vtkm::Vec<vtkm::FloatDefault, 3>;
|
|||||||
|
|
||||||
vtkm::cont::DataSet MakeTestDatasetStructured()
|
vtkm::cont::DataSet MakeTestDatasetStructured()
|
||||||
{
|
{
|
||||||
static const vtkm::Id xdim = 3, ydim = 3;
|
static constexpr vtkm::Id xdim = 3, ydim = 3;
|
||||||
static const vtkm::Id2 dim(xdim, ydim);
|
static const vtkm::Id2 dim(xdim, ydim);
|
||||||
static const vtkm::Id numVerts = xdim * ydim;
|
static constexpr vtkm::Id numVerts = xdim * ydim;
|
||||||
|
|
||||||
vtkm::Float32 scalars[numVerts];
|
vtkm::Float32 scalars[numVerts];
|
||||||
for (vtkm::Id i = 0; i < numVerts; ++i)
|
for (vtkm::Id i = 0; i < numVerts; ++i)
|
||||||
|
@ -102,7 +102,7 @@ vtkm::cont::DataSet MakeIsosurfaceTestDataSet(vtkm::Id3 dims)
|
|||||||
|
|
||||||
dataSet.AddField(vtkm::cont::Field("nodevar", vtkm::cont::Field::ASSOC_POINTS, fieldArray));
|
dataSet.AddField(vtkm::cont::Field("nodevar", vtkm::cont::Field::ASSOC_POINTS, fieldArray));
|
||||||
|
|
||||||
static const vtkm::IdComponent ndim = 3;
|
static constexpr vtkm::IdComponent ndim = 3;
|
||||||
vtkm::cont::CellSetStructured<ndim> cellSet("cells");
|
vtkm::cont::CellSetStructured<ndim> cellSet("cells");
|
||||||
cellSet.SetPointDimensions(vdims);
|
cellSet.SetPointDimensions(vdims);
|
||||||
dataSet.AddCellSet(cellSet);
|
dataSet.AddCellSet(cellSet);
|
||||||
|
@ -111,7 +111,7 @@ vtkm::cont::DataSet MakeIsosurfaceTestDataSet(vtkm::Id3 dims)
|
|||||||
dataSet.AddField(
|
dataSet.AddField(
|
||||||
vtkm::cont::Field(std::string("nodevar"), vtkm::cont::Field::ASSOC_POINTS, fieldArray));
|
vtkm::cont::Field(std::string("nodevar"), vtkm::cont::Field::ASSOC_POINTS, fieldArray));
|
||||||
|
|
||||||
static const vtkm::IdComponent ndim = 3;
|
static constexpr vtkm::IdComponent ndim = 3;
|
||||||
vtkm::cont::CellSetStructured<ndim> cellSet("cells");
|
vtkm::cont::CellSetStructured<ndim> cellSet("cells");
|
||||||
cellSet.SetPointDimensions(vdims);
|
cellSet.SetPointDimensions(vdims);
|
||||||
dataSet.AddCellSet(cellSet);
|
dataSet.AddCellSet(cellSet);
|
||||||
|
@ -63,8 +63,8 @@ public:
|
|||||||
return this->GetNumberOfPoints();
|
return this->GetNumberOfPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
static const vtkm::IdComponent NUM_POINTS_IN_CELL = 2;
|
static constexpr vtkm::IdComponent NUM_POINTS_IN_CELL = 2;
|
||||||
static const vtkm::IdComponent MAX_CELL_TO_POINT = 2;
|
static constexpr vtkm::IdComponent MAX_CELL_TO_POINT = 2;
|
||||||
|
|
||||||
VTKM_EXEC_CONT
|
VTKM_EXEC_CONT
|
||||||
vtkm::Id GetNumberOfPoints() const { return this->PointDimensions; }
|
vtkm::Id GetNumberOfPoints() const { return this->PointDimensions; }
|
||||||
@ -171,8 +171,8 @@ public:
|
|||||||
return this->GetPointDimensions();
|
return this->GetPointDimensions();
|
||||||
}
|
}
|
||||||
|
|
||||||
static const vtkm::IdComponent NUM_POINTS_IN_CELL = 4;
|
static constexpr vtkm::IdComponent NUM_POINTS_IN_CELL = 4;
|
||||||
static const vtkm::IdComponent MAX_CELL_TO_POINT = 4;
|
static constexpr vtkm::IdComponent MAX_CELL_TO_POINT = 4;
|
||||||
|
|
||||||
VTKM_EXEC_CONT
|
VTKM_EXEC_CONT
|
||||||
vtkm::Id GetNumberOfCells() const { return vtkm::ReduceProduct(this->GetCellDimensions()); }
|
vtkm::Id GetNumberOfCells() const { return vtkm::ReduceProduct(this->GetCellDimensions()); }
|
||||||
@ -334,8 +334,8 @@ public:
|
|||||||
return this->GetPointDimensions();
|
return this->GetPointDimensions();
|
||||||
}
|
}
|
||||||
|
|
||||||
static const vtkm::IdComponent NUM_POINTS_IN_CELL = 8;
|
static constexpr vtkm::IdComponent NUM_POINTS_IN_CELL = 8;
|
||||||
static const vtkm::IdComponent MAX_CELL_TO_POINT = 8;
|
static constexpr vtkm::IdComponent MAX_CELL_TO_POINT = 8;
|
||||||
|
|
||||||
VTKM_EXEC_CONT
|
VTKM_EXEC_CONT
|
||||||
vtkm::Id GetNumberOfCells() const { return vtkm::ReduceProduct(this->GetCellDimensions()); }
|
vtkm::Id GetNumberOfCells() const { return vtkm::ReduceProduct(this->GetCellDimensions()); }
|
||||||
|
@ -263,11 +263,11 @@ public:
|
|||||||
using type = typename detail::AtType<ParameterIndex, FunctionSignature>::type;
|
using type = typename detail::AtType<ParameterIndex, FunctionSignature>::type;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const bool RETURN_VALID = FunctionInterfaceReturnContainer<ResultType>::VALID;
|
static constexpr bool RETURN_VALID = FunctionInterfaceReturnContainer<ResultType>::VALID;
|
||||||
|
|
||||||
/// The number of parameters in this \c Function Interface.
|
/// The number of parameters in this \c Function Interface.
|
||||||
///
|
///
|
||||||
static const vtkm::IdComponent ARITY = SigInfo::Arity;
|
static constexpr vtkm::IdComponent ARITY = SigInfo::Arity;
|
||||||
|
|
||||||
/// Returns the number of parameters held in this \c FunctionInterface. The
|
/// Returns the number of parameters held in this \c FunctionInterface. The
|
||||||
/// return value is the same as \c ARITY.
|
/// return value is the same as \c ARITY.
|
||||||
@ -793,7 +793,7 @@ public:
|
|||||||
FinishFunctor>;
|
FinishFunctor>;
|
||||||
NextContinueType nextContinue =
|
NextContinueType nextContinue =
|
||||||
NextContinueType(this->OriginalInterface, nextInterface, this->Transform, this->Finish);
|
NextContinueType(this->OriginalInterface, nextInterface, this->Transform, this->Finish);
|
||||||
static const vtkm::IdComponent Index =
|
static constexpr vtkm::IdComponent Index =
|
||||||
vtkm::internal::FunctionInterface<NextFunction>::ARITY + 1;
|
vtkm::internal::FunctionInterface<NextFunction>::ARITY + 1;
|
||||||
vtkm::internal::IndexTag<Index> indexTag;
|
vtkm::internal::IndexTag<Index> indexTag;
|
||||||
this->Transform(this->OriginalInterface.GetParameter(indexTag), nextContinue, indexTag);
|
this->Transform(this->OriginalInterface.GetParameter(indexTag), nextContinue, indexTag);
|
||||||
@ -810,7 +810,7 @@ private:
|
|||||||
FinishFunctor>;
|
FinishFunctor>;
|
||||||
NextContinueType nextContinue =
|
NextContinueType nextContinue =
|
||||||
NextContinueType(this->OriginalInterface, nextInterface, this->Transform, this->Finish);
|
NextContinueType(this->OriginalInterface, nextInterface, this->Transform, this->Finish);
|
||||||
static const vtkm::IdComponent Index =
|
static constexpr vtkm::IdComponent Index =
|
||||||
vtkm::internal::FunctionInterface<NextFunction>::ARITY + 1;
|
vtkm::internal::FunctionInterface<NextFunction>::ARITY + 1;
|
||||||
vtkm::internal::IndexTag<Index> indexTag;
|
vtkm::internal::IndexTag<Index> indexTag;
|
||||||
this->Transform(this->OriginalInterface.GetParameter(indexTag), nextContinue, indexTag);
|
this->Transform(this->OriginalInterface.GetParameter(indexTag), nextContinue, indexTag);
|
||||||
|
@ -39,7 +39,7 @@ namespace internal
|
|||||||
template <vtkm::IdComponent Index>
|
template <vtkm::IdComponent Index>
|
||||||
struct IndexTag
|
struct IndexTag
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent INDEX = Index;
|
static constexpr vtkm::IdComponent INDEX = Index;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
} // namespace vtkm::internal
|
} // namespace vtkm::internal
|
||||||
|
@ -70,7 +70,7 @@ struct Invocation
|
|||||||
/// constituent element of the input (such as the points or cells). This
|
/// constituent element of the input (such as the points or cells). This
|
||||||
/// index points to the parameter that defines this input domain.
|
/// index points to the parameter that defines this input domain.
|
||||||
///
|
///
|
||||||
static const vtkm::IdComponent InputDomainIndex = _InputDomainIndex;
|
static constexpr vtkm::IdComponent InputDomainIndex = _InputDomainIndex;
|
||||||
|
|
||||||
/// \brief An array representing the output to input map.
|
/// \brief An array representing the output to input map.
|
||||||
///
|
///
|
||||||
|
@ -41,7 +41,7 @@ void CheckReference(vtkm::Id index, vtkm::internal::ArrayPortalValueReference<Ar
|
|||||||
VTKM_TEST_ASSERT(test_equal(ref, TestValue(index, ValueType())), "Got bad value from reference.");
|
VTKM_TEST_ASSERT(test_equal(ref, TestValue(index, ValueType())), "Got bad value from reference.");
|
||||||
}
|
}
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
struct DoTestForType
|
struct DoTestForType
|
||||||
{
|
{
|
||||||
|
@ -34,7 +34,7 @@ namespace internal
|
|||||||
|
|
||||||
inline bool IsLittleEndian()
|
inline bool IsLittleEndian()
|
||||||
{
|
{
|
||||||
static const vtkm::Int16 i16 = 0x1;
|
static constexpr vtkm::Int16 i16 = 0x1;
|
||||||
const vtkm::Int8* i8p = reinterpret_cast<const vtkm::Int8*>(&i16);
|
const vtkm::Int8* i8p = reinterpret_cast<const vtkm::Int8*>(&i16);
|
||||||
return (*i8p == 1);
|
return (*i8p == 1);
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
static const vtkm::Id WIDTH = 512, HEIGHT = 512;
|
static constexpr vtkm::Id WIDTH = 512, HEIGHT = 512;
|
||||||
static vtkm::Id which = 0, NUM_DATASETS = 5;
|
static vtkm::Id which = 0, NUM_DATASETS = 5;
|
||||||
static bool done = false;
|
static bool done = false;
|
||||||
static bool batch = false;
|
static bool batch = false;
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
static const vtkm::Id WIDTH = 512, HEIGHT = 512;
|
static constexpr vtkm::Id WIDTH = 512, HEIGHT = 512;
|
||||||
static vtkm::Id windowID, which = 0, NUM_DATASETS = 4;
|
static vtkm::Id windowID, which = 0, NUM_DATASETS = 4;
|
||||||
static bool done = false;
|
static bool done = false;
|
||||||
static bool batch = false;
|
static bool batch = false;
|
||||||
|
@ -48,7 +48,6 @@ class Lists
|
|||||||
public:
|
public:
|
||||||
static constexpr vtkm::IdComponent NUM_NUMBERS = 5;
|
static constexpr vtkm::IdComponent NUM_NUMBERS = 5;
|
||||||
|
|
||||||
|
|
||||||
VTKM_EXEC_CONT vtkm::Float64 NumberList(vtkm::Int32 i) const
|
VTKM_EXEC_CONT vtkm::Float64 NumberList(vtkm::Int32 i) const
|
||||||
{
|
{
|
||||||
vtkm::Float64 numberList[NUM_NUMBERS] = { 0.25, 0.5, 1.0, 2.0, 3.75 };
|
vtkm::Float64 numberList[NUM_NUMBERS] = { 0.25, 0.5, 1.0, 2.0, 3.75 };
|
||||||
|
@ -51,8 +51,8 @@ namespace
|
|||||||
template <typename T, vtkm::IdComponent NumRow, vtkm::IdComponent NumCol>
|
template <typename T, vtkm::IdComponent NumRow, vtkm::IdComponent NumCol>
|
||||||
struct MatrixTest
|
struct MatrixTest
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent NUM_ROWS = NumRow;
|
static constexpr vtkm::IdComponent NUM_ROWS = NumRow;
|
||||||
static const vtkm::IdComponent NUM_COLS = NumCol;
|
static constexpr vtkm::IdComponent NUM_COLS = NumCol;
|
||||||
using MatrixType = vtkm::Matrix<T, NUM_ROWS, NUM_COLS>;
|
using MatrixType = vtkm::Matrix<T, NUM_ROWS, NUM_COLS>;
|
||||||
using ComponentType = typename MatrixType::ComponentType;
|
using ComponentType = typename MatrixType::ComponentType;
|
||||||
|
|
||||||
@ -372,7 +372,7 @@ T RecursiveDeterminant(const vtkm::Matrix<T, Size, Size>& A)
|
|||||||
template <typename T, vtkm::IdComponent Size>
|
template <typename T, vtkm::IdComponent Size>
|
||||||
struct SquareMatrixTest
|
struct SquareMatrixTest
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent SIZE = Size;
|
static constexpr vtkm::IdComponent SIZE = Size;
|
||||||
using MatrixType = vtkm::Matrix<T, Size, Size>;
|
using MatrixType = vtkm::Matrix<T, Size, Size>;
|
||||||
|
|
||||||
static void CheckMatrixSize()
|
static void CheckMatrixSize()
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
namespace UnitTestVecFromPortalNamespace
|
namespace UnitTestVecFromPortalNamespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::IdComponent ARRAY_SIZE = 10;
|
static constexpr vtkm::IdComponent ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void CheckType(T, T)
|
void CheckType(T, T)
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
namespace UnitTestVecFromPortalPermuteNamespace
|
namespace UnitTestVecFromPortalPermuteNamespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::IdComponent ARRAY_SIZE = 10;
|
static constexpr vtkm::IdComponent ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void CheckType(T, T)
|
void CheckType(T, T)
|
||||||
|
@ -24,8 +24,8 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id MAX_VECTOR_SIZE = 5;
|
static constexpr vtkm::Id MAX_VECTOR_SIZE = 5;
|
||||||
static const vtkm::Id VecInit[MAX_VECTOR_SIZE] = { 42, 54, 67, 12, 78 };
|
static constexpr vtkm::Id VecInit[MAX_VECTOR_SIZE] = { 42, 54, 67, 12, 78 };
|
||||||
|
|
||||||
struct TestVecTypeFunctor
|
struct TestVecTypeFunctor
|
||||||
{
|
{
|
||||||
|
@ -62,7 +62,7 @@ struct VecVariableTestFunctor
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
void operator()(T) const
|
void operator()(T) const
|
||||||
{
|
{
|
||||||
static const vtkm::IdComponent SIZE = 5;
|
static constexpr vtkm::IdComponent SIZE = 5;
|
||||||
using VecType = vtkm::Vec<T, SIZE>;
|
using VecType = vtkm::Vec<T, SIZE>;
|
||||||
using VecVariableType = vtkm::VecVariable<T, SIZE>;
|
using VecVariableType = vtkm::VecVariable<T, SIZE>;
|
||||||
using TTraits = vtkm::TypeTraits<VecVariableType>;
|
using TTraits = vtkm::TypeTraits<VecVariableType>;
|
||||||
|
@ -42,11 +42,11 @@ class FieldStatistics
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// For moments readability
|
// For moments readability
|
||||||
static const vtkm::Id FIRST = 0;
|
static constexpr vtkm::Id FIRST = 0;
|
||||||
static const vtkm::Id SECOND = 1;
|
static constexpr vtkm::Id SECOND = 1;
|
||||||
static const vtkm::Id THIRD = 2;
|
static constexpr vtkm::Id THIRD = 2;
|
||||||
static const vtkm::Id FOURTH = 3;
|
static constexpr vtkm::Id FOURTH = 3;
|
||||||
static const vtkm::Id NUM_POWERS = 4;
|
static constexpr vtkm::Id NUM_POWERS = 4;
|
||||||
|
|
||||||
struct StatInfo
|
struct StatInfo
|
||||||
{
|
{
|
||||||
|
@ -271,7 +271,7 @@ namespace arg
|
|||||||
template <typename KeyType>
|
template <typename KeyType>
|
||||||
struct TypeCheck<vtkm::cont::arg::TypeCheckTagKeys, vtkm::worklet::Keys<KeyType>>
|
struct TypeCheck<vtkm::cont::arg::TypeCheckTagKeys, vtkm::worklet::Keys<KeyType>>
|
||||||
{
|
{
|
||||||
static const bool value = true;
|
static constexpr bool value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename KeyType, typename Device>
|
template <typename KeyType, typename Device>
|
||||||
|
@ -319,7 +319,7 @@ public:
|
|||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
private:
|
private:
|
||||||
static const vtkm::UInt8 HIDDEN = 2; // from vtk
|
static constexpr vtkm::UInt8 HIDDEN = 2; // from vtk
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<vtkm::Id> CellIds;
|
vtkm::cont::ArrayHandle<vtkm::Id> CellIds;
|
||||||
vtkm::cont::ArrayHandle<vtkm::Vec<vtkm::FloatDefault, 3>> ParametricCoordinates;
|
vtkm::cont::ArrayHandle<vtkm::Vec<vtkm::FloatDefault, 3>> ParametricCoordinates;
|
||||||
|
@ -363,7 +363,7 @@ protected:
|
|||||||
using ExecutionInterface =
|
using ExecutionInterface =
|
||||||
vtkm::internal::FunctionInterface<typename WorkletType::ExecutionSignature>;
|
vtkm::internal::FunctionInterface<typename WorkletType::ExecutionSignature>;
|
||||||
|
|
||||||
static const vtkm::IdComponent NUM_INVOKE_PARAMS = ControlInterface::ARITY;
|
static constexpr vtkm::IdComponent NUM_INVOKE_PARAMS = ControlInterface::ARITY;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// We don't really need these types, but declaring them checks the arguments
|
// We don't really need these types, but declaring them checks the arguments
|
||||||
|
@ -31,7 +31,7 @@ namespace
|
|||||||
|
|
||||||
using Device = vtkm::cont::DeviceAdapterTagSerial;
|
using Device = vtkm::cont::DeviceAdapterTagSerial;
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
struct TestExecObject
|
struct TestExecObject
|
||||||
{
|
{
|
||||||
@ -94,7 +94,7 @@ namespace arg
|
|||||||
template <>
|
template <>
|
||||||
struct TypeCheck<TestTypeCheckTag, vtkm::Id*>
|
struct TypeCheck<TestTypeCheckTag, vtkm::Id*>
|
||||||
{
|
{
|
||||||
static const bool value = true;
|
static constexpr bool value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
@ -197,7 +197,7 @@ struct Fetch<TestFetchTagOutput,
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id EXPECTED_EXEC_OBJECT_VALUE = 123;
|
static constexpr vtkm::Id EXPECTED_EXEC_OBJECT_VALUE = 123;
|
||||||
|
|
||||||
class TestWorkletBase : public vtkm::worklet::internal::WorkletBase
|
class TestWorkletBase : public vtkm::worklet::internal::WorkletBase
|
||||||
{
|
{
|
||||||
|
@ -32,9 +32,9 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id NUM_UNIQUE = 100;
|
static constexpr vtkm::Id NUM_UNIQUE = 100;
|
||||||
static const vtkm::Id NUM_PER_GROUP = 10;
|
static constexpr vtkm::Id NUM_PER_GROUP = 10;
|
||||||
static const vtkm::Id ARRAY_SIZE = NUM_UNIQUE * NUM_PER_GROUP;
|
static constexpr vtkm::Id ARRAY_SIZE = NUM_UNIQUE * NUM_PER_GROUP;
|
||||||
|
|
||||||
template <typename KeyArray, typename ValueArray>
|
template <typename KeyArray, typename ValueArray>
|
||||||
void CheckAverageByKey(const KeyArray& uniqueKeys, const ValueArray& averagedValues)
|
void CheckAverageByKey(const KeyArray& uniqueKeys, const ValueArray& averagedValues)
|
||||||
|
@ -104,7 +104,7 @@ static vtkm::cont::DataSet MakeIsosurfaceTestDataSet(vtkm::Id3 dims)
|
|||||||
vtkm::cont::ArrayHandleUniformPointCoordinates coordinates(vdims, origin, spacing);
|
vtkm::cont::ArrayHandleUniformPointCoordinates coordinates(vdims, origin, spacing);
|
||||||
dataSet.AddCoordinateSystem(vtkm::cont::CoordinateSystem("coordinates", coordinates));
|
dataSet.AddCoordinateSystem(vtkm::cont::CoordinateSystem("coordinates", coordinates));
|
||||||
|
|
||||||
static const vtkm::IdComponent ndim = 3;
|
static constexpr vtkm::IdComponent ndim = 3;
|
||||||
vtkm::cont::CellSetStructured<ndim> cellSet("cells");
|
vtkm::cont::CellSetStructured<ndim> cellSet("cells");
|
||||||
cellSet.SetPointDimensions(vdims);
|
cellSet.SetPointDimensions(vdims);
|
||||||
dataSet.AddCellSet(cellSet);
|
dataSet.AddCellSet(cellSet);
|
||||||
|
@ -99,9 +99,9 @@ vtkm::cont::DataSet MakeTestDatasetExplicit()
|
|||||||
|
|
||||||
vtkm::cont::DataSet MakeTestDatasetStructured()
|
vtkm::cont::DataSet MakeTestDatasetStructured()
|
||||||
{
|
{
|
||||||
static const vtkm::Id xdim = 3, ydim = 3;
|
static constexpr vtkm::Id xdim = 3, ydim = 3;
|
||||||
static const vtkm::Id2 dim(xdim, ydim);
|
static const vtkm::Id2 dim(xdim, ydim);
|
||||||
static const vtkm::Id numVerts = xdim * ydim;
|
static constexpr vtkm::Id numVerts = xdim * ydim;
|
||||||
|
|
||||||
vtkm::Float32 scalars[numVerts];
|
vtkm::Float32 scalars[numVerts];
|
||||||
for (vtkm::Id i = 0; i < numVerts; ++i)
|
for (vtkm::Id i = 0; i < numVerts; ++i)
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 1033;
|
static constexpr vtkm::Id ARRAY_SIZE = 1033;
|
||||||
static const vtkm::Id NUM_UNIQUE = ARRAY_SIZE / 10;
|
static constexpr vtkm::Id NUM_UNIQUE = ARRAY_SIZE / 10;
|
||||||
|
|
||||||
template <typename KeyPortal, typename IdPortal, typename IdComponentPortal>
|
template <typename KeyPortal, typename IdPortal, typename IdComponentPortal>
|
||||||
void CheckKeyReduce(const KeyPortal& originalKeys,
|
void CheckKeyReduce(const KeyPortal& originalKeys,
|
||||||
|
@ -110,7 +110,7 @@ vtkm::cont::DataSet MakeIsosurfaceTestDataSet(vtkm::Id3 dims)
|
|||||||
vtkm::cont::ArrayHandleUniformPointCoordinates coordinates(vdims, origin, spacing);
|
vtkm::cont::ArrayHandleUniformPointCoordinates coordinates(vdims, origin, spacing);
|
||||||
dataSet.AddCoordinateSystem(vtkm::cont::CoordinateSystem("coordinates", coordinates));
|
dataSet.AddCoordinateSystem(vtkm::cont::CoordinateSystem("coordinates", coordinates));
|
||||||
|
|
||||||
static const vtkm::IdComponent ndim = 3;
|
static constexpr vtkm::IdComponent ndim = 3;
|
||||||
vtkm::cont::CellSetStructured<ndim> cellSet("cells");
|
vtkm::cont::CellSetStructured<ndim> cellSet("cells");
|
||||||
cellSet.SetPointDimensions(vdims);
|
cellSet.SetPointDimensions(vdims);
|
||||||
dataSet.AddCellSet(cellSet);
|
dataSet.AddCellSet(cellSet);
|
||||||
|
@ -80,7 +80,7 @@ public:
|
|||||||
|
|
||||||
namespace mapfield
|
namespace mapfield
|
||||||
{
|
{
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename WorkletType>
|
template <typename WorkletType>
|
||||||
struct DoStaticTestWorklet
|
struct DoStaticTestWorklet
|
||||||
|
@ -57,7 +57,7 @@ struct TestExecObjectWorklet
|
|||||||
namespace map_exec_field
|
namespace map_exec_field
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
template <typename WorkletType>
|
template <typename WorkletType>
|
||||||
struct DoTestWorklet
|
struct DoTestWorklet
|
||||||
|
@ -74,7 +74,7 @@ public:
|
|||||||
namespace map_whole_array
|
namespace map_whole_array
|
||||||
{
|
{
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 10;
|
static constexpr vtkm::Id ARRAY_SIZE = 10;
|
||||||
|
|
||||||
struct DoTestWholeArrayWorklet
|
struct DoTestWholeArrayWorklet
|
||||||
{
|
{
|
||||||
|
@ -45,9 +45,9 @@ namespace
|
|||||||
} \
|
} \
|
||||||
} while (false)
|
} while (false)
|
||||||
|
|
||||||
static const vtkm::Id ARRAY_SIZE = 1033;
|
static constexpr vtkm::Id ARRAY_SIZE = 1033;
|
||||||
static const vtkm::IdComponent GROUP_SIZE = 10;
|
static constexpr vtkm::IdComponent GROUP_SIZE = 10;
|
||||||
static const vtkm::Id NUM_UNIQUE = ARRAY_SIZE / GROUP_SIZE;
|
static constexpr vtkm::Id NUM_UNIQUE = ARRAY_SIZE / GROUP_SIZE;
|
||||||
|
|
||||||
struct CheckKeyValuesWorklet : vtkm::worklet::WorkletReduceByKey
|
struct CheckKeyValuesWorklet : vtkm::worklet::WorkletReduceByKey
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user