35 #ifndef _BLAZE_MATH_VIEWS_COLUMNS_COLUMNSDATA_H_ 36 #define _BLAZE_MATH_VIEWS_COLUMNS_COLUMNSDATA_H_ 69 template<
typename... CCAs >
94 class ColumnsData< index_sequence<I,Is...> >
98 static constexpr
size_t N =
sizeof...( Is ) + 1UL;
108 static constexpr
bool compileTimeArgs =
true;
114 template<
typename... RCAs >
115 explicit inline ColumnsData( RCAs... args ) noexcept;
117 ColumnsData(
const ColumnsData& ) =
default;
124 ~ColumnsData() =
default;
131 ColumnsData& operator=(
const ColumnsData& ) =
delete;
138 static inline constexpr decltype(
auto) idces () noexcept;
139 static inline constexpr
size_t idx (
size_t i ) noexcept;
140 static inline constexpr
size_t columns() noexcept;
146 using Indices = std::array<
size_t,N>;
152 static constexpr Indices indices_{ { I, Is... } };
166 constexpr
typename ColumnsData< index_sequence<I,Is...> >::Indices
167 ColumnsData< index_sequence<I,Is...> >::indices_;
181 template<
typename... RCAs >
182 inline ColumnsData< index_sequence<I,Is...> >::ColumnsData( RCAs... args ) noexcept
198 inline constexpr decltype(
auto) ColumnsData< index_sequence<I,Is...> >::idces() noexcept
200 return index_sequence<I,Is...>();
215 inline constexpr
size_t ColumnsData< index_sequence<I,Is...> >::idx(
size_t i ) noexcept
232 inline constexpr
size_t ColumnsData< index_sequence<I,Is...> >
::columns() noexcept
256 template<
typename P >
261 static constexpr
size_t N = 0UL;
271 static constexpr
bool compileTimeArgs =
false;
277 template<
typename... RCAs >
278 explicit inline ColumnsData( P p,
size_t n, RCAs... args ) noexcept;
280 ColumnsData(
const ColumnsData& ) =
default;
281 ColumnsData( ColumnsData&& ) =
default;
288 ~ColumnsData() =
default;
295 ColumnsData& operator=(
const ColumnsData& ) =
delete;
296 ColumnsData& operator=( ColumnsData&& ) =
delete;
303 inline decltype(
auto) idces () const noexcept;
304 inline
size_t idx (
size_t i ) const noexcept;
305 inline
size_t columns() const noexcept;
330 template< typename P >
331 template< typename... RCAs >
332 inline ColumnsData<P>::ColumnsData( P p,
size_t n, RCAs... args ) noexcept
348 template<
typename P >
349 inline decltype(
auto) ColumnsData<P>::idces() const noexcept
351 return std::make_pair( p_, n_ );
364 template<
typename P >
365 inline size_t ColumnsData<P>::idx(
size_t i )
const noexcept
380 template<
typename P >
410 static constexpr
size_t N = 0UL;
420 static constexpr
bool compileTimeArgs =
false;
426 template<
typename T,
typename... RCAs >
427 explicit inline ColumnsData( T* indices,
size_t n, RCAs... args );
429 ColumnsData(
const ColumnsData& ) =
default;
430 ColumnsData( ColumnsData&& ) =
default;
437 ~ColumnsData() =
default;
444 ColumnsData& operator=(
const ColumnsData& ) =
delete;
451 inline decltype(
auto) idces () const noexcept;
452 inline
size_t idx (
size_t i ) const noexcept;
453 inline
size_t columns() const noexcept;
459 using Indices = SmallArray<
size_t,8UL>;
483 inline ColumnsData<>::ColumnsData( T* indices,
size_t n, RCAs... args )
484 : indices_( indices, indices+n )
498 inline decltype(
auto) ColumnsData<>::idces() const noexcept
500 return const_cast<const Indices&>( indices_ );
515 inline size_t ColumnsData<>::idx(
size_t i )
const noexcept
532 return indices_.size();
555 template<
typename... CRAs1,
typename... CRAs2 >
556 inline constexpr
bool 557 compareIndices(
const ColumnsData<CRAs1...>& lhs,
const ColumnsData<CRAs2...>& rhs ) noexcept
559 if( lhs.columns() != rhs.columns() )
562 for(
size_t i=0UL; i<lhs.columns(); ++i ) {
563 if( lhs.idx(i) != rhs.idx(i) )
#define BLAZE_USER_ASSERT(expr, msg)
Run time assertion macro for user checks.In case of an invalid run time expression,...
Definition: Assert.h:117
Header file for basic type definitions.
Header file for the MAYBE_UNUSED function template.
constexpr size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:514
Header file for the SmallArray implementation.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
constexpr void MAYBE_UNUSED(const Args &...)
Suppression of unused parameter warnings.
Definition: MaybeUnused.h:81
Header file for run time assertion macros.
Header file for the integer_sequence and index_sequence aliases.
C++-standard-specific system settings.