35#ifndef _BLAZE_MATH_VIEWS_COLUMNS_COLUMNSDATA_H_
36#define _BLAZE_MATH_VIEWS_COLUMNS_COLUMNSDATA_H_
71template<
typename... CCAs >
100 static constexpr size_t N =
sizeof...( Is ) + 1UL;
110 static constexpr bool compileTimeArgs =
true;
116 template<
typename... RCAs >
117 explicit inline ColumnsData( RCAs... args )
noexcept;
119 ColumnsData(
const ColumnsData& ) =
default;
126 ~ColumnsData() =
default;
133 ColumnsData& operator=(
const ColumnsData& ) =
delete;
140 static constexpr decltype(
auto) idces ()
noexcept;
141 static constexpr size_t idx (
size_t i )
noexcept;
142 static constexpr size_t columns() noexcept;
148 using Indices = std::array<
size_t,N>;
154 static constexpr Indices indices_{ { I, Is... } };
183template<
typename... RCAs >
184inline ColumnsData<
index_sequence<I,Is...> >::ColumnsData( RCAs... args )
noexcept
217constexpr size_t ColumnsData<
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... RCAs >
280 inline ColumnsData( P p,
size_t n, RCAs... args )
noexcept;
282 ColumnsData(
const ColumnsData& ) =
default;
283 ColumnsData( ColumnsData&& ) =
default;
290 ~ColumnsData() =
default;
297 ColumnsData& operator=(
const ColumnsData& ) =
delete;
298 ColumnsData& operator=( ColumnsData&& ) =
delete;
305 inline decltype(
auto) idces ()
const noexcept;
306 inline size_t idx (
size_t i )
const noexcept;
307 inline size_t columns() const noexcept;
332template< typename P >
333template< typename... RCAs >
334inline ColumnsData<P>::ColumnsData( P p,
size_t n, RCAs... args ) noexcept
350template<
typename P >
351inline decltype(
auto) ColumnsData<P>::idces()
const noexcept
353 return std::make_pair( p_, n_ );
366template<
typename P >
367inline size_t ColumnsData<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... RCAs >
429 inline ColumnsData( T* indices,
size_t n, RCAs... args );
431 ColumnsData(
const ColumnsData& ) =
default;
432 ColumnsData( ColumnsData&& ) =
default;
439 ~ColumnsData() =
default;
446 ColumnsData& operator=(
const ColumnsData& ) =
delete;
453 inline decltype(
auto) idces ()
const noexcept;
454 inline size_t idx (
size_t i )
const noexcept;
455 inline size_t columns() const noexcept;
461 using Indices = SmallArray<
size_t,8UL>;
485inline ColumnsData<>::ColumnsData( T* indices,
size_t n, RCAs... args )
486 : indices_( indices, indices+n )
500inline decltype(
auto) ColumnsData<>::idces()
const noexcept
517inline size_t ColumnsData<>::idx(
size_t i )
const noexcept
534 return indices_.size();
557template<
typename... CRAs1,
typename... CRAs2 >
559 compareIndices(
const ColumnsData<CRAs1...>& lhs,
const ColumnsData<CRAs2...>& rhs )
noexcept
561 if( lhs.columns() != rhs.columns() )
564 for(
size_t i=0UL; i<lhs.columns(); ++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 columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:660
#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.