You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
namespace StormEigen { namespace internal { template<typename ArgType> struct evaluator<Circulant<ArgType> > : evaluator_base<Circulant<ArgType> > { typedef Circulant<ArgType> XprType; typedef typename nested_eval<ArgType, XprType::ColsAtCompileTime>::type ArgTypeNested; typedef typename remove_all<ArgTypeNested>::type ArgTypeNestedCleaned; typedef typename XprType::CoeffReturnType CoeffReturnType;
enum { CoeffReadCost = evaluator<ArgTypeNestedCleaned>::CoeffReadCost, Flags = StormEigen::ColMajor }; evaluator(const XprType& xpr) : m_argImpl(xpr.m_arg), m_rows(xpr.rows()) { }
CoeffReturnType coeff(Index row, Index col) const { Index index = row - col; if (index < 0) index += m_rows; return m_argImpl.coeff(index); }
evaluator<ArgTypeNestedCleaned> m_argImpl; const Index m_rows; }; } }
|