xref: /aosp_15_r20/external/eigen/doc/examples/make_circulant.cpp.traits (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Linamespace Eigen {
2*bf2c3715SXin Li  namespace internal {
3*bf2c3715SXin Li    template <class ArgType>
4*bf2c3715SXin Li    struct traits<Circulant<ArgType> >
5*bf2c3715SXin Li    {
6*bf2c3715SXin Li      typedef Eigen::Dense StorageKind;
7*bf2c3715SXin Li      typedef Eigen::MatrixXpr XprKind;
8*bf2c3715SXin Li      typedef typename ArgType::StorageIndex StorageIndex;
9*bf2c3715SXin Li      typedef typename ArgType::Scalar Scalar;
10*bf2c3715SXin Li      enum {
11*bf2c3715SXin Li        Flags = Eigen::ColMajor,
12*bf2c3715SXin Li        RowsAtCompileTime = ArgType::RowsAtCompileTime,
13*bf2c3715SXin Li        ColsAtCompileTime = ArgType::RowsAtCompileTime,
14*bf2c3715SXin Li        MaxRowsAtCompileTime = ArgType::MaxRowsAtCompileTime,
15*bf2c3715SXin Li        MaxColsAtCompileTime = ArgType::MaxRowsAtCompileTime
16*bf2c3715SXin Li      };
17*bf2c3715SXin Li    };
18*bf2c3715SXin Li  }
19*bf2c3715SXin Li}
20