New doc page on implementing a new expression class.

This commit is contained in:
Jitse Niesen
2014-09-27 23:25:58 +01:00
parent 6d0f0b8cec
commit ce2035af86
9 changed files with 238 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
template <class ArgType>
class Circulant : public Eigen::MatrixBase<Circulant<ArgType> >
{
public:
Circulant(const ArgType& arg)
: m_arg(arg)
{
EIGEN_STATIC_ASSERT(ArgType::ColsAtCompileTime == 1,
YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX);
}
typedef typename Eigen::internal::ref_selector<Circulant>::type Nested;
typedef typename Eigen::internal::traits<Circulant>::Index Index;
Index rows() const { return m_arg.rows(); }
Index cols() const { return m_arg.rows(); }
typedef typename Eigen::internal::ref_selector<ArgType>::type ArgTypeNested;
ArgTypeNested m_arg;
};