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.

20 lines
611 B

  1. template <class ArgType>
  2. class Circulant : public StormEigen::MatrixBase<Circulant<ArgType> >
  3. {
  4. public:
  5. Circulant(const ArgType& arg)
  6. : m_arg(arg)
  7. {
  8. EIGEN_STATIC_ASSERT(ArgType::ColsAtCompileTime == 1,
  9. YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX);
  10. }
  11. typedef typename StormEigen::internal::ref_selector<Circulant>::type Nested;
  12. typedef StormEigen::Index Index;
  13. Index rows() const { return m_arg.rows(); }
  14. Index cols() const { return m_arg.rows(); }
  15. typedef typename StormEigen::internal::ref_selector<ArgType>::type ArgTypeNested;
  16. ArgTypeNested m_arg;
  17. };