diff --git a/vtkm/CMakeLists.txt b/vtkm/CMakeLists.txt index c0c4e0e7d..21cc412c7 100644 --- a/vtkm/CMakeLists.txt +++ b/vtkm/CMakeLists.txt @@ -38,8 +38,10 @@ set(headers TypeListTag.h Types.h TypeTraits.h - VectorAnalysis.h + VecFromPortal.h + VecFromPortalPermute.h VecRectilinearPointCoordinates.h + VectorAnalysis.h VecTraits.h VecVariable.h UnaryPredicates.h diff --git a/vtkm/exec/internal/VecFromPortal.h b/vtkm/VecFromPortal.h similarity index 81% rename from vtkm/exec/internal/VecFromPortal.h rename to vtkm/VecFromPortal.h index a5d6c2c8b..7b5e4e4ea 100644 --- a/vtkm/exec/internal/VecFromPortal.h +++ b/vtkm/VecFromPortal.h @@ -17,8 +17,8 @@ // Laboratory (LANL), the U.S. Government retains certain rights in // this software. //============================================================================ -#ifndef vtk_m_exec_internal_VecFromPortal_h -#define vtk_m_exec_internal_VecFromPortal_h +#ifndef vtk_m_VecFromPortal_h +#define vtk_m_VecFromPortal_h #include #include @@ -26,8 +26,6 @@ #include namespace vtkm { -namespace exec { -namespace internal { /// \brief A short variable-length array from a window in an ArrayPortal. /// @@ -42,23 +40,23 @@ public: typename std::remove_const::type; VTKM_SUPPRESS_EXEC_WARNINGS - VTKM_EXEC + VTKM_EXEC_CONT VecFromPortal() : NumComponents(0), Offset(0) { } VTKM_SUPPRESS_EXEC_WARNINGS - VTKM_EXEC + VTKM_EXEC_CONT VecFromPortal(const PortalType &portal, vtkm::IdComponent numComponents = 0, vtkm::Id offset = 0) : Portal(portal), NumComponents(numComponents), Offset(offset) { } - VTKM_EXEC + VTKM_EXEC_CONT vtkm::IdComponent GetNumberOfComponents() const { return this->NumComponents; } template - VTKM_EXEC + VTKM_EXEC_CONT void CopyInto(vtkm::Vec &dest) const { vtkm::IdComponent numComponents = vtkm::Min(DestSize, this->NumComponents); @@ -69,7 +67,7 @@ public: } VTKM_SUPPRESS_EXEC_WARNINGS - VTKM_EXEC + VTKM_EXEC_CONT ComponentType operator[](vtkm::IdComponent index) const { return this->Portal.Get(index + this->Offset); @@ -81,17 +79,8 @@ private: vtkm::Id Offset; }; -} -} -} // namespace vtkm::exec::internal - -// Implementations of traits classes, which by definition are in the vtkm -// namespace. - -namespace vtkm { - template -struct TypeTraits > +struct TypeTraits > { private: typedef typename PortalType::ValueType ComponentType; @@ -100,36 +89,40 @@ public: typedef typename vtkm::TypeTraits::NumericTag NumericTag; typedef TypeTraitsVectorTag DimensionalityTag; - VTKM_EXEC - static vtkm::exec::internal::VecFromPortal ZeroInitialization() + VTKM_SUPPRESS_EXEC_WARNINGS + VTKM_EXEC_CONT + static vtkm::VecFromPortal ZeroInitialization() { - return vtkm::exec::internal::VecFromPortal(); + return vtkm::VecFromPortal(); } }; template -struct VecTraits > +struct VecTraits > { - typedef vtkm::exec::internal::VecFromPortal VecType; + typedef vtkm::VecFromPortal VecType; typedef typename VecType::ComponentType ComponentType; typedef vtkm::VecTraitsTagMultipleComponents HasMultipleComponents; typedef vtkm::VecTraitsTagSizeVariable IsSizeStatic; - VTKM_EXEC + VTKM_SUPPRESS_EXEC_WARNINGS + VTKM_EXEC_CONT static vtkm::IdComponent GetNumberOfComponents(const VecType &vector) { return vector.GetNumberOfComponents(); } - VTKM_EXEC + VTKM_SUPPRESS_EXEC_WARNINGS + VTKM_EXEC_CONT static ComponentType GetComponent(const VecType &vector, vtkm::IdComponent componentIndex) { return vector[componentIndex]; } + VTKM_SUPPRESS_EXEC_WARNINGS template - VTKM_EXEC + VTKM_EXEC_CONT static void CopyInto(const VecType &src, vtkm::Vec &dest) { @@ -139,4 +132,4 @@ struct VecTraits > } // namespace vtkm -#endif //vtk_m_exec_internal_VecFromPortal_h +#endif //vtk_m_VecFromPortal_h diff --git a/vtkm/exec/internal/VecFromPortalPermute.h b/vtkm/VecFromPortalPermute.h similarity index 82% rename from vtkm/exec/internal/VecFromPortalPermute.h rename to vtkm/VecFromPortalPermute.h index d5b2b090c..454f43d42 100644 --- a/vtkm/exec/internal/VecFromPortalPermute.h +++ b/vtkm/VecFromPortalPermute.h @@ -17,8 +17,8 @@ // Laboratory (LANL), the U.S. Government retains certain rights in // this software. //============================================================================ -#ifndef vtk_m_exec_internal_VecFromPortalPermute_h -#define vtk_m_exec_internal_VecFromPortalPermute_h +#ifndef vtk_m_VecFromPortalPermute_h +#define vtk_m_VecFromPortalPermute_h #include #include @@ -26,8 +26,6 @@ #include namespace vtkm { -namespace exec { -namespace internal { /// \brief A short vector from an ArrayPortal and a vector of indices. /// @@ -43,20 +41,24 @@ public: typename std::remove_const::type; - VTKM_EXEC + VTKM_SUPPRESS_EXEC_WARNINGS + VTKM_EXEC_CONT VecFromPortalPermute() { } - VTKM_EXEC + VTKM_SUPPRESS_EXEC_WARNINGS + VTKM_EXEC_CONT VecFromPortalPermute(const IndexVecType *indices, const PortalType &portal) : Indices(indices), Portal(portal) { } - VTKM_EXEC + VTKM_SUPPRESS_EXEC_WARNINGS + VTKM_EXEC_CONT vtkm::IdComponent GetNumberOfComponents() const { return this->Indices->GetNumberOfComponents(); } + VTKM_SUPPRESS_EXEC_WARNINGS template - VTKM_EXEC + VTKM_EXEC_CONT void CopyInto(vtkm::Vec &dest) const { vtkm::IdComponent numComponents = @@ -68,7 +70,7 @@ public: } VTKM_SUPPRESS_EXEC_WARNINGS - VTKM_EXEC + VTKM_EXEC_CONT ComponentType operator[](vtkm::IdComponent index) const { return this->Portal.Get((*this->Indices)[index]); @@ -79,21 +81,12 @@ private: PortalType Portal; }; -} -} -} // namespace vtkm::exec::internal - -// Implementations of traits classes, which by definition are in the vtkm -// namespace. - -namespace vtkm { - template struct TypeTraits< - vtkm::exec::internal::VecFromPortalPermute > + vtkm::VecFromPortalPermute > { private: - typedef vtkm::exec::internal::VecFromPortalPermute + typedef vtkm::VecFromPortalPermute VecType; typedef typename PortalType::ValueType ComponentType; @@ -101,7 +94,8 @@ public: typedef typename vtkm::TypeTraits::NumericTag NumericTag; typedef TypeTraitsVectorTag DimensionalityTag; - VTKM_EXEC + VTKM_SUPPRESS_EXEC_WARNINGS + VTKM_EXEC_CONT static VecType ZeroInitialization() { return VecType(); @@ -110,29 +104,32 @@ public: template struct VecTraits< - vtkm::exec::internal::VecFromPortalPermute > + vtkm::VecFromPortalPermute > { - typedef vtkm::exec::internal::VecFromPortalPermute + typedef vtkm::VecFromPortalPermute VecType; typedef typename VecType::ComponentType ComponentType; typedef vtkm::VecTraitsTagMultipleComponents HasMultipleComponents; typedef vtkm::VecTraitsTagSizeVariable IsSizeStatic; - VTKM_EXEC + VTKM_SUPPRESS_EXEC_WARNINGS + VTKM_EXEC_CONT static vtkm::IdComponent GetNumberOfComponents(const VecType &vector) { return vector.GetNumberOfComponents(); } - VTKM_EXEC + VTKM_SUPPRESS_EXEC_WARNINGS + VTKM_EXEC_CONT static ComponentType GetComponent(const VecType &vector, vtkm::IdComponent componentIndex) { return vector[componentIndex]; } + VTKM_SUPPRESS_EXEC_WARNINGS template - VTKM_EXEC + VTKM_EXEC_CONT static void CopyInto(const VecType &src, vtkm::Vec &dest) { @@ -142,4 +139,4 @@ struct VecTraits< } // namespace vtkm -#endif //vtk_m_exec_internal_VecFromPortalPermute_h +#endif //vtk_m_VecFromPortalPermute_h diff --git a/vtkm/exec/ConnectivityExplicit.h b/vtkm/exec/ConnectivityExplicit.h index 0f4ec2636..9cbfc9cd5 100644 --- a/vtkm/exec/ConnectivityExplicit.h +++ b/vtkm/exec/ConnectivityExplicit.h @@ -23,7 +23,7 @@ #include #include -#include +#include namespace vtkm { namespace exec { @@ -72,8 +72,7 @@ public: return CellShapeTag(static_cast(this->Shapes.Get(index))); } - typedef vtkm::exec::internal::VecFromPortal - IndicesType; + using IndicesType = vtkm::VecFromPortal; /// Returns a Vec-like object containing the indices for the given index. /// The object returned is not an actual array, but rather an object that diff --git a/vtkm/exec/arg/FetchTagArrayTopologyMapIn.h b/vtkm/exec/arg/FetchTagArrayTopologyMapIn.h index c5a0696b5..7801e1621 100644 --- a/vtkm/exec/arg/FetchTagArrayTopologyMapIn.h +++ b/vtkm/exec/arg/FetchTagArrayTopologyMapIn.h @@ -31,7 +31,7 @@ #include #include -#include +#include namespace vtkm { namespace exec { @@ -68,8 +68,7 @@ struct FetchArrayTopologyMapInImplementation // The FieldExecObjectType is expected to behave like an ArrayPortal. typedef FieldExecObjectType PortalType; - typedef vtkm::exec::internal::VecFromPortalPermute< - IndexVecType,PortalType> ValueType; + using ValueType = vtkm::VecFromPortalPermute; VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC diff --git a/vtkm/exec/internal/CMakeLists.txt b/vtkm/exec/internal/CMakeLists.txt index 0df4af1f3..dd5138b65 100644 --- a/vtkm/exec/internal/CMakeLists.txt +++ b/vtkm/exec/internal/CMakeLists.txt @@ -20,8 +20,6 @@ set(headers ErrorMessageBuffer.h - VecFromPortal.h - VecFromPortalPermute.h WorkletInvokeFunctor.h WorkletInvokeFunctorDetail.h ) diff --git a/vtkm/exec/internal/testing/CMakeLists.txt b/vtkm/exec/internal/testing/CMakeLists.txt index a2d49c25a..6df5be855 100644 --- a/vtkm/exec/internal/testing/CMakeLists.txt +++ b/vtkm/exec/internal/testing/CMakeLists.txt @@ -22,8 +22,6 @@ set(unit_tests UnitTestErrorMessageBuffer.cxx - UnitTestVecFromPortal.cxx - UnitTestVecFromPortalPermute.cxx UnitTestWorkletInvokeFunctor.cxx ) vtkm_unit_tests(SOURCES ${unit_tests}) diff --git a/vtkm/testing/CMakeLists.txt b/vtkm/testing/CMakeLists.txt index 31115f18b..b51ef605d 100644 --- a/vtkm/testing/CMakeLists.txt +++ b/vtkm/testing/CMakeLists.txt @@ -46,6 +46,8 @@ set(unit_tests UnitTestTypes.cxx UnitTestTypeTraits.cxx UnitTestUnaryPredicates.cxx + UnitTestVecFromPortal.cxx + UnitTestVecFromPortalPermute.cxx UnitTestVecRectilinearPointCoordinates.cxx UnitTestVectorAnalysis.cxx UnitTestVecTraits.cxx diff --git a/vtkm/exec/internal/testing/UnitTestVecFromPortal.cxx b/vtkm/testing/UnitTestVecFromPortal.cxx similarity index 97% rename from vtkm/exec/internal/testing/UnitTestVecFromPortal.cxx rename to vtkm/testing/UnitTestVecFromPortal.cxx index ffc69ec69..829951b1b 100644 --- a/vtkm/exec/internal/testing/UnitTestVecFromPortal.cxx +++ b/vtkm/testing/UnitTestVecFromPortal.cxx @@ -18,7 +18,7 @@ // this software. //============================================================================ -#include +#include #include @@ -51,7 +51,7 @@ struct VecFromPortalTestFunctor void operator()(T) const { typedef TestPortal PortalType; - typedef vtkm::exec::internal::VecFromPortal VecType; + typedef vtkm::VecFromPortal VecType; typedef vtkm::TypeTraits TTraits; typedef vtkm::VecTraits VTraits; diff --git a/vtkm/exec/internal/testing/UnitTestVecFromPortalPermute.cxx b/vtkm/testing/UnitTestVecFromPortalPermute.cxx similarity index 96% rename from vtkm/exec/internal/testing/UnitTestVecFromPortalPermute.cxx rename to vtkm/testing/UnitTestVecFromPortalPermute.cxx index e6d0b14fe..7b499464a 100644 --- a/vtkm/exec/internal/testing/UnitTestVecFromPortalPermute.cxx +++ b/vtkm/testing/UnitTestVecFromPortalPermute.cxx @@ -18,7 +18,7 @@ // this software. //============================================================================ -#include +#include #include @@ -54,7 +54,7 @@ struct VecFromPortalPermuteTestFunctor { typedef TestPortal PortalType; typedef vtkm::VecVariable IndexVecType; - typedef vtkm::exec::internal::VecFromPortalPermute + typedef vtkm::VecFromPortalPermute VecType; typedef vtkm::TypeTraits TTraits; typedef vtkm::VecTraits VTraits;