mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Clang-format tests, examples, libraries, benchmarks, etc.
This commit is contained in:
committed by
Rasmus Munk Larsen
parent
3252ecc7a4
commit
46e9cdb7fe
@@ -2,13 +2,14 @@
|
||||
#include <iostream>
|
||||
|
||||
// [circulant_func]
|
||||
template<class ArgType>
|
||||
template <class ArgType>
|
||||
class circulant_functor {
|
||||
const ArgType &m_vec;
|
||||
public:
|
||||
const ArgType& m_vec;
|
||||
|
||||
public:
|
||||
circulant_functor(const ArgType& arg) : m_vec(arg) {}
|
||||
|
||||
const typename ArgType::Scalar& operator() (Eigen::Index row, Eigen::Index col) const {
|
||||
const typename ArgType::Scalar& operator()(Eigen::Index row, Eigen::Index col) const {
|
||||
Eigen::Index index = row - col;
|
||||
if (index < 0) index += m_vec.size();
|
||||
return m_vec(index);
|
||||
@@ -17,30 +18,25 @@ public:
|
||||
// [circulant_func]
|
||||
|
||||
// [square]
|
||||
template<class ArgType>
|
||||
template <class ArgType>
|
||||
struct circulant_helper {
|
||||
typedef Eigen::Matrix<typename ArgType::Scalar,
|
||||
ArgType::SizeAtCompileTime,
|
||||
ArgType::SizeAtCompileTime,
|
||||
Eigen::ColMajor,
|
||||
ArgType::MaxSizeAtCompileTime,
|
||||
ArgType::MaxSizeAtCompileTime> MatrixType;
|
||||
typedef Eigen::Matrix<typename ArgType::Scalar, ArgType::SizeAtCompileTime, ArgType::SizeAtCompileTime,
|
||||
Eigen::ColMajor, ArgType::MaxSizeAtCompileTime, ArgType::MaxSizeAtCompileTime>
|
||||
MatrixType;
|
||||
};
|
||||
// [square]
|
||||
|
||||
// [makeCirculant]
|
||||
template <class ArgType>
|
||||
Eigen::CwiseNullaryOp<circulant_functor<ArgType>, typename circulant_helper<ArgType>::MatrixType>
|
||||
makeCirculant(const Eigen::MatrixBase<ArgType>& arg)
|
||||
{
|
||||
Eigen::CwiseNullaryOp<circulant_functor<ArgType>, typename circulant_helper<ArgType>::MatrixType> makeCirculant(
|
||||
const Eigen::MatrixBase<ArgType>& arg) {
|
||||
typedef typename circulant_helper<ArgType>::MatrixType MatrixType;
|
||||
return MatrixType::NullaryExpr(arg.size(), arg.size(), circulant_functor<ArgType>(arg.derived()));
|
||||
}
|
||||
// [makeCirculant]
|
||||
|
||||
// [main]
|
||||
int main()
|
||||
{
|
||||
int main() {
|
||||
Eigen::VectorXd vec(4);
|
||||
vec << 1, 2, 4, 8;
|
||||
Eigen::MatrixXd mat;
|
||||
|
||||
Reference in New Issue
Block a user