diff options
Diffstat (limited to 'eigen/doc/examples/make_circulant.cpp.expression')
-rw-r--r-- | eigen/doc/examples/make_circulant.cpp.expression | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/eigen/doc/examples/make_circulant.cpp.expression b/eigen/doc/examples/make_circulant.cpp.expression new file mode 100644 index 0000000..380cd44 --- /dev/null +++ b/eigen/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 Eigen::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; +}; |