diff options
author | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2014-09-27 23:25:58 +0100 |
---|---|---|
committer | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2014-09-27 23:25:58 +0100 |
commit | ce2035af868d57b85b4078c15843d5c1f51047dc (patch) | |
tree | ca6392457ba02fa24e8f5f0ddcf755697d73d36e /doc/examples/make_circulant.cpp.expression | |
parent | 6d0f0b8cecd0ee944503d885fd34278044bab746 (diff) |
New doc page on implementing a new expression class.
Diffstat (limited to 'doc/examples/make_circulant.cpp.expression')
-rw-r--r-- | doc/examples/make_circulant.cpp.expression | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/doc/examples/make_circulant.cpp.expression b/doc/examples/make_circulant.cpp.expression new file mode 100644 index 000000000..a68bcb730 --- /dev/null +++ b/doc/examples/make_circulant.cpp.expression @@ -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; +}; |