17 lines
		
	
	
		
			560 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			560 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;
 | |
| };
 | 
