35 #ifndef _BLAZE_MATH_VIEWS_COLUMNS_COLUMNSDATA_H_ 36 #define _BLAZE_MATH_VIEWS_COLUMNS_COLUMNSDATA_H_ 67 template<
size_t... CCAs >
72 using Indices = std::array<size_t,
sizeof...(CCAs)>;
78 template<
typename... RCAs >
79 explicit inline ColumnsData( RCAs... args ) noexcept;
89 ColumnsData& operator=(
const ColumnsData& ) =
delete;
95 static inline constexpr
const Indices& idces () noexcept;
96 static inline constexpr
size_t idx (
size_t i ) noexcept;
97 static inline constexpr
size_t columns() noexcept;
105 static constexpr Indices indices_{ { CCAs... } };
116 template<
size_t... CCAs >
117 constexpr
typename ColumnsData<CCAs...>::Indices ColumnsData<CCAs...>::indices_;
128 template<
size_t... CCAs >
129 template<
typename... RCAs >
130 inline ColumnsData<CCAs...>::ColumnsData( RCAs... args ) noexcept
144 template<
size_t... CCAs >
145 inline constexpr
const typename ColumnsData<CCAs...>::Indices& ColumnsData<CCAs...>::idces() noexcept
160 template<
size_t... CCAs >
161 inline constexpr
size_t ColumnsData<CCAs...>::idx(
size_t i ) noexcept
176 template<
size_t... CCAs >
179 return sizeof...( CCAs );
206 using Indices = SmallVector<size_t,8UL>;
212 template<
typename T,
typename... RCAs >
213 explicit inline ColumnsData(
const T* indices,
size_t n, RCAs... args );
215 inline ColumnsData(
const ColumnsData& ) =
default;
216 inline ColumnsData( ColumnsData&& ) =
default;
225 ColumnsData& operator=(
const ColumnsData& ) =
delete;
231 inline const Indices& idces () const noexcept;
232 inline
size_t idx (
size_t i ) const noexcept;
233 inline
size_t columns() const noexcept;
259 inline ColumnsData<>::ColumnsData( const T* indices,
size_t n, RCAs... args )
260 : indices_( indices, indices+n )
274 inline const ColumnsData<>::Indices& ColumnsData<>::idces() const noexcept
291 inline size_t ColumnsData<>::idx(
size_t i )
const noexcept
308 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.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
BLAZE_ALWAYS_INLINE size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:506
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