21 lines
591 B
Plaintext
21 lines
591 B
Plaintext
|
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;
|
||
|
};
|