35 #ifndef _BLAZE_MATH_VIEWS_COLUMNS_COLUMNSDATA_H_ 36 #define _BLAZE_MATH_VIEWS_COLUMNS_COLUMNSDATA_H_ 69 template<
typename... CCAs >
94 struct ColumnsData< index_sequence<I,Is...> >
98 static constexpr
size_t N =
sizeof...( Is ) + 1UL;
105 template<
typename... RCAs >
106 explicit inline ColumnsData( RCAs... args ) noexcept;
108 ColumnsData(
const ColumnsData& ) =
default;
115 ~ColumnsData() =
default;
122 ColumnsData& operator=(
const ColumnsData& ) =
delete;
129 static inline constexpr decltype(
auto) idces () noexcept;
130 static inline constexpr
size_t idx (
size_t i ) noexcept;
131 static inline constexpr
size_t columns() noexcept;
137 using Indices =
std::array<
size_t,N>;
143 static constexpr Indices indices_{ { I, Is... } };
157 constexpr
typename ColumnsData< index_sequence<I,Is...> >::Indices
158 ColumnsData< index_sequence<I,Is...> >::indices_;
172 template<
typename... RCAs >
173 inline ColumnsData< index_sequence<I,Is...> >::ColumnsData( RCAs... args ) noexcept
189 inline constexpr decltype(
auto) ColumnsData< index_sequence<I,Is...> >::idces() noexcept
191 return index_sequence<I,Is...>();
206 inline constexpr
size_t ColumnsData< index_sequence<I,Is...> >::idx(
size_t i ) noexcept
223 inline constexpr
size_t ColumnsData< index_sequence<I,Is...> >
::columns() noexcept
247 template<
typename P >
248 struct ColumnsData<P>
252 static constexpr
size_t N = 0UL;
259 template<
typename... RCAs >
260 explicit inline ColumnsData( P p,
size_t n, RCAs... args ) noexcept;
262 ColumnsData(
const ColumnsData& ) =
default;
263 ColumnsData( ColumnsData&& ) =
default;
270 ~ColumnsData() =
default;
277 ColumnsData& operator=(
const ColumnsData& ) =
delete;
278 ColumnsData& operator=( ColumnsData&& ) =
delete;
285 inline decltype(
auto) idces () const noexcept;
286 inline
size_t idx (
size_t i ) const noexcept;
287 inline
size_t columns() const noexcept;
312 template< typename P >
313 template< typename... RCAs >
314 inline ColumnsData<P>::ColumnsData( P p,
size_t n, RCAs... args ) noexcept
330 template<
typename P >
331 inline decltype(
auto) ColumnsData<P>::idces() const noexcept
333 return std::make_pair( p_,
n_ );
346 template<
typename P >
347 inline size_t ColumnsData<P>::idx(
size_t i )
const noexcept
362 template<
typename P >
392 static constexpr
size_t N = 0UL;
399 template<
typename T,
typename... RCAs >
400 explicit inline ColumnsData(
const T* indices,
size_t n, RCAs... args );
402 ColumnsData(
const ColumnsData& ) =
default;
403 ColumnsData( ColumnsData&& ) =
default;
410 ~ColumnsData() =
default;
417 ColumnsData& operator=(
const ColumnsData& ) =
delete;
424 inline decltype(
auto) idces () const noexcept;
425 inline
size_t idx (
size_t i ) const noexcept;
426 inline
size_t columns() const noexcept;
432 using Indices = SmallArray<
size_t,8UL>;
456 inline ColumnsData<>::ColumnsData( const T* indices,
size_t n, RCAs... args )
457 : indices_( indices, indices+n )
471 inline decltype(
auto) ColumnsData<>::idces() const noexcept
473 return const_cast<const Indices&
>( indices_ );
488 inline size_t ColumnsData<>::idx(
size_t i )
const noexcept
505 return indices_.size();
528 template<
typename... CRAs1,
typename... CRAs2 >
529 inline constexpr
bool 530 compareIndices(
const ColumnsData<CRAs1...>& lhs,
const ColumnsData<CRAs2...>& rhs ) noexcept
532 if( lhs.columns() != rhs.columns() )
535 for(
size_t i=0UL; i<lhs.columns(); ++i ) {
536 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, 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.
constexpr void UNUSED_PARAMETER(const Args &...)
Suppression of unused parameter warnings.
Definition: Unused.h:81
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
Header file for run time assertion macros.
Header file for the integer_sequence and index_sequence aliases.
size_t n_
The current number of columns of the compressed matrix.
Definition: CompressedMatrix.h:3290
C++-standard-specific system settings.