rotgen/include/rotgen/container/strides/fixed.hpp

40 lines
1 KiB
C++

//==================================================================================================
/*
ROTGEN - Runtime Overlay for Eigen
Copyright : CODE RECKONS
SPDX-License-Identifier: BSL-1.0
*/
//==================================================================================================
#pragma once
#include <rotgen/concepts.hpp>
#include <Eigen/Dense>
namespace rotgen
{
template<int Outer, int Inner> struct stride : Eigen::Stride<Outer, Inner>
{
using parent = Eigen::Stride<Outer, Inner>;
using parent::parent;
};
template<int Value = Eigen::Dynamic>
struct inner_stride : Eigen::InnerStride<Value>
{
using parent = Eigen::InnerStride<Value>;
using parent::parent;
};
template<int Value = Eigen::Dynamic>
struct outer_stride : Eigen::OuterStride<Value>
{
using parent = Eigen::OuterStride<Value>;
using parent::parent;
};
inner_stride(int) -> inner_stride<-1>;
outer_stride(int) -> outer_stride<-1>;
using dynamic_stride = stride<-1, -1>;
}