35#ifndef _BLAZE_MATH_VIEWS_ROWS_ROWSDATA_H_
36#define _BLAZE_MATH_VIEWS_ROWS_ROWSDATA_H_
71template<
typename... CRAs >
100 static constexpr size_t N =
sizeof...( Is ) + 1UL;
110 static constexpr bool compileTimeArgs =
true;
116 template<
typename... RRAs >
117 explicit inline RowsData( RRAs... args )
noexcept;
119 RowsData(
const RowsData& ) =
default;
126 ~RowsData() =
default;
133 RowsData& operator=(
const RowsData& ) =
delete;
140 static constexpr decltype(
auto) idces()
noexcept;
141 static constexpr size_t idx (
size_t i )
noexcept;
142 static constexpr size_t rows () noexcept;
148 using Indices = std::array<
size_t,N>;
154 static constexpr Indices indices_{ { I, Is... } };
183template<
typename... RRAs >
184inline RowsData<
index_sequence<I,Is...> >::RowsData( RRAs... args )
noexcept
217constexpr size_t RowsData<
index_sequence<I,Is...> >::idx(
size_t i )
noexcept
258template<
typename P >
263 static constexpr size_t N = 0UL;
273 static constexpr bool compileTimeArgs =
false;
279 template<
typename... RRAs >
280 inline RowsData( P p,
size_t n, RRAs... args )
noexcept;
282 RowsData(
const RowsData& ) =
default;
283 RowsData( RowsData&& ) =
default;
290 ~RowsData() =
default;
297 RowsData& operator=(
const RowsData& ) =
delete;
298 RowsData& operator=( RowsData&& ) =
delete;
305 inline decltype(
auto) idces()
const noexcept;
306 inline size_t idx (
size_t i )
const noexcept;
307 inline size_t rows () const noexcept;
332template< typename P >
333template< typename... RRAs >
334inline RowsData<P>::RowsData( P p,
size_t n, RRAs... args ) noexcept
350template<
typename P >
351inline decltype(
auto) RowsData<P>::idces()
const noexcept
353 return std::make_pair( p_, n_ );
366template<
typename P >
367inline size_t RowsData<P>::idx(
size_t i )
const noexcept
382template<
typename P >
412 static constexpr size_t N = 0UL;
422 static constexpr bool compileTimeArgs =
false;
428 template<
typename T,
typename... RRAs >
429 inline RowsData( T* indices,
size_t n, RRAs... args );
431 RowsData(
const RowsData& ) =
default;
432 RowsData( RowsData&& ) =
default;
439 ~RowsData() =
default;
446 RowsData& operator=(
const RowsData& ) =
delete;
453 inline decltype(
auto) idces()
const noexcept;
454 inline size_t idx (
size_t i )
const noexcept;
455 inline size_t rows () const noexcept;
461 using Indices = SmallArray<
size_t,8UL>;
485inline RowsData<>::RowsData( T* indices,
size_t n, RRAs... args )
486 : indices_( indices, indices+n )
500inline decltype(
auto) RowsData<>::idces()
const noexcept
517inline size_t RowsData<>::idx(
size_t i )
const noexcept
534 return indices_.size();
557template<
typename... CRAs1,
typename... CRAs2 >
559 compareIndices(
const RowsData<CRAs1...>& lhs,
const RowsData<CRAs2...>& rhs )
noexcept
561 if( lhs.rows() != rhs.rows() )
564 for(
size_t i=0UL; i<lhs.rows(); ++i ) {
565 if( lhs.idx(i) != rhs.idx(i) )
Header file for the as_const function template.
Header file for run time assertion macros.
Header file for the integer_sequence and index_sequence aliases.
Header file for the MAYBE_UNUSED function template.
Header file for the SmallArray implementation.
C++-standard-specific system settings.
Index sequence type of the Blaze library.
constexpr size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:644
#define BLAZE_USER_ASSERT(expr, msg)
Run time assertion macro for user checks.
Definition: Assert.h:117
constexpr void MAYBE_UNUSED(const Args &...)
Suppression of unused parameter warnings.
Definition: MaybeUnused.h:81
constexpr AddConst_t< T > & as_const(T &v) noexcept
Adding 'const' to the given lvalue.
Definition: AsConst.h:64
Header file for basic type definitions.