parent
3ff3738f6b
commit
dfa6a16dcb
1 changed files with 7 additions and 13 deletions
|
|
@ -80,27 +80,22 @@ namespace rotgen
|
||||||
template<std::same_as<value_type> S, int R, int C, int O, int MR, int MC>
|
template<std::same_as<value_type> S, int R, int C, int O, int MR, int MC>
|
||||||
ref(matrix<S, R, C, O, MR, MC>& m)
|
ref(matrix<S, R, C, O, MR, MC>& m)
|
||||||
: parent(m.data(), m.rows(), m.cols(), strides(m))
|
: parent(m.data(), m.rows(), m.cols(), strides(m))
|
||||||
{
|
{}
|
||||||
static_assert((O & 1) == storage_order, "ref: Incompatible storage layout");
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename Ref, int R, int C, bool I>
|
template<typename Ref, int R, int C, bool I>
|
||||||
|
requires(std::same_as<value_type, typename Ref::value_type> && (Ref::storage_order & 1) == storage_order)
|
||||||
ref(block<Ref,R,C,I>&& b) : parent(b.data(), b.rows(), b.cols(), stride_type{b.outerStride(),b.innerStride()})
|
ref(block<Ref,R,C,I>&& b) : parent(b.data(), b.rows(), b.cols(), stride_type{b.outerStride(),b.innerStride()})
|
||||||
{
|
{}
|
||||||
static_assert((Ref::storage_order & 1) == storage_order, "ref: Incompatible storage layout");
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename Ref, int R, int C, bool I>
|
template<typename Ref, int R, int C, bool I>
|
||||||
|
requires(std::same_as<value_type, typename Ref::value_type> && (Ref::storage_order & 1) == storage_order)
|
||||||
ref(block<Ref,R,C,I>& b) : parent(b.data(), b.rows(), b.cols(), stride_type{b.outerStride(),b.innerStride()})
|
ref(block<Ref,R,C,I>& b) : parent(b.data(), b.rows(), b.cols(), stride_type{b.outerStride(),b.innerStride()})
|
||||||
{
|
{}
|
||||||
static_assert((Ref::storage_order & 1) == storage_order, "ref: Incompatible storage layout");
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename Ref, int O, typename S>
|
template<typename Ref, int O, typename S>
|
||||||
|
requires(std::same_as<value_type, typename Ref::value_type> && (Ref::storage_order & 1) == storage_order)
|
||||||
ref(map<Ref,O,S>& b) : parent(b.data(), b.rows(), b.cols(), stride_type{b.outerStride(),b.innerStride()})
|
ref(map<Ref,O,S>& b) : parent(b.data(), b.rows(), b.cols(), stride_type{b.outerStride(),b.innerStride()})
|
||||||
{
|
{}
|
||||||
static_assert((Ref::storage_order & 1) == storage_order, "ref: Incompatible storage layout");
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename TT, int OO, typename SS>
|
template<typename TT, int OO, typename SS>
|
||||||
ref ( ref<TT,OO,SS>& b )
|
ref ( ref<TT,OO,SS>& b )
|
||||||
|
|
@ -180,7 +175,6 @@ namespace rotgen
|
||||||
|
|
||||||
template<std::same_as<value_type> S, int R, int C, int O, int MR, int MC>
|
template<std::same_as<value_type> S, int R, int C, int O, int MR, int MC>
|
||||||
ref(matrix<S, R, C, O, MR, MC> const& m)
|
ref(matrix<S, R, C, O, MR, MC> const& m)
|
||||||
requires((O & 1) == storage_order)
|
|
||||||
: parent(m.data(), m.rows(), m.cols(), strides(m))
|
: parent(m.data(), m.rows(), m.cols(), strides(m))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue