summaryrefslogtreecommitdiffhomepage
path: root/eigen/doc/examples/make_circulant2.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2019-03-03 21:09:10 +0100
committerStanislaw Halik <sthalik@misaki.pl>2019-03-03 21:10:13 +0100
commitf0238cfb6997c4acfc2bd200de7295f3fa36968f (patch)
treeb215183760e4f615b9c1dabc1f116383b72a1b55 /eigen/doc/examples/make_circulant2.cpp
parent543edd372a5193d04b3de9f23c176ab439e51b31 (diff)
don't index Eigen
Diffstat (limited to 'eigen/doc/examples/make_circulant2.cpp')
-rw-r--r--eigen/doc/examples/make_circulant2.cpp52
1 files changed, 0 insertions, 52 deletions
diff --git a/eigen/doc/examples/make_circulant2.cpp b/eigen/doc/examples/make_circulant2.cpp
deleted file mode 100644
index 95d3dd3..0000000
--- a/eigen/doc/examples/make_circulant2.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <Eigen/Core>
-#include <iostream>
-
-using namespace Eigen;
-
-// [circulant_func]
-template<class ArgType>
-class circulant_functor {
- const ArgType &m_vec;
-public:
- circulant_functor(const ArgType& arg) : m_vec(arg) {}
-
- const typename ArgType::Scalar& operator() (Index row, Index col) const {
- Index index = row - col;
- if (index < 0) index += m_vec.size();
- return m_vec(index);
- }
-};
-// [circulant_func]
-
-// [square]
-template<class ArgType>
-struct circulant_helper {
- typedef Matrix<typename ArgType::Scalar,
- ArgType::SizeAtCompileTime,
- ArgType::SizeAtCompileTime,
- ColMajor,
- ArgType::MaxSizeAtCompileTime,
- ArgType::MaxSizeAtCompileTime> MatrixType;
-};
-// [square]
-
-// [makeCirculant]
-template <class ArgType>
-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()
-{
- Eigen::VectorXd vec(4);
- vec << 1, 2, 4, 8;
- Eigen::MatrixXd mat;
- mat = makeCirculant(vec);
- std::cout << mat << std::endl;
-}
-// [main]