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;
 | 
						|
};
 |