35 #ifndef _BLAZE_MATH_VIEWS_ELEMENTS_ELEMENTSDATA_H_ 36 #define _BLAZE_MATH_VIEWS_ELEMENTS_ELEMENTSDATA_H_ 73 template<
size_t... CEAs >
78 using Indices = std::array<size_t,
sizeof...(CEAs)>;
84 template<
typename... REAs >
85 explicit inline ElementsData( REAs... args ) noexcept;
95 ElementsData& operator=(
const ElementsData& ) =
delete;
101 static inline constexpr
const Indices& idces() noexcept;
102 static inline constexpr
size_t idx (
size_t i ) noexcept;
103 static inline constexpr
size_t size () noexcept;
111 static constexpr Indices indices_{ { CEAs... } };
122 template<
size_t... CEAs >
123 constexpr
typename ElementsData<CEAs...>::Indices ElementsData<CEAs...>::indices_;
134 template<
size_t... CEAs >
135 template<
typename... REAs >
136 inline ElementsData<CEAs...>::ElementsData( REAs... args ) noexcept
150 template<
size_t... CEAs >
151 inline constexpr
const typename ElementsData<CEAs...>::Indices& ElementsData<CEAs...>::idces() noexcept
166 template<
size_t... CEAs >
167 inline constexpr
size_t ElementsData<CEAs...>::idx(
size_t i ) noexcept
182 template<
size_t... CEAs >
185 return sizeof...( CEAs );
208 struct ElementsData<>
212 using Indices = SmallVector<size_t,8UL>;
218 template<
typename T,
typename... REAs >
219 explicit inline ElementsData(
const T* indices,
size_t n, REAs... args );
221 inline ElementsData(
const ElementsData& ) =
default;
222 inline ElementsData( ElementsData&& ) =
default;
231 ElementsData& operator=(
const ElementsData& ) =
delete;
237 inline const Indices& idces() const noexcept;
238 inline
size_t idx (
size_t i ) const noexcept;
239 inline
size_t size () const noexcept;
265 inline ElementsData<>::ElementsData( const T* indices,
size_t n, REAs... args )
266 : indices_( indices, indices+n )
280 inline const ElementsData<>::Indices& ElementsData<>::idces() const noexcept
297 inline size_t ElementsData<>::idx(
size_t i )
const noexcept
314 return indices_.size();
#define BLAZE_USER_ASSERT(expr, msg)
Run time assertion macro for user checks.In case of an invalid run time expression, the program execution is terminated. The BLAZE_USER_ASSERT macro can be disabled by setting the BLAZE_USER_ASSERT flag to zero or by defining NDEBUG during the compilation.
Definition: Assert.h:117
Header file for the UNUSED_PARAMETER function template.
Header file for basic type definitions.
BLAZE_ALWAYS_INLINE size_t size(const Vector< VT, TF > &vector) noexcept
Returns the current size/dimension of the vector.
Definition: Vector.h:265
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Header file for run time assertion macros.
Header file for the SmallVector implementation.
void UNUSED_PARAMETER(const Args &...)
Suppression of unused parameter warnings.
Definition: Unused.h:81