diff options
Diffstat (limited to 'doc/examples')
-rw-r--r-- | doc/examples/TemplateKeyword_flexible.cpp | 22 | ||||
-rw-r--r-- | doc/examples/TemplateKeyword_simple.cpp | 20 |
2 files changed, 42 insertions, 0 deletions
diff --git a/doc/examples/TemplateKeyword_flexible.cpp b/doc/examples/TemplateKeyword_flexible.cpp new file mode 100644 index 000000000..9d85292dd --- /dev/null +++ b/doc/examples/TemplateKeyword_flexible.cpp @@ -0,0 +1,22 @@ +#include <Eigen/Dense> +#include <iostream> + +using namespace Eigen; + +template <typename Derived1, typename Derived2> +void copyUpperTriangularPart(MatrixBase<Derived1>& dst, const MatrixBase<Derived2>& src) +{ + /* Note the 'template' keywords in the following line! */ + dst.template triangularView<Upper>() = src.template triangularView<Upper>(); +} + +int main() +{ + MatrixXi m1 = MatrixXi::Ones(5,5); + MatrixXi m2 = MatrixXi::Random(4,4); + std::cout << "m2 before copy:" << std::endl; + std::cout << m2 << std::endl << std::endl; + copyUpperTriangularPart(m2, m1.topLeftCorner(4,4)); + std::cout << "m2 after copy:" << std::endl; + std::cout << m2 << std::endl << std::endl; +} diff --git a/doc/examples/TemplateKeyword_simple.cpp b/doc/examples/TemplateKeyword_simple.cpp new file mode 100644 index 000000000..6998c1769 --- /dev/null +++ b/doc/examples/TemplateKeyword_simple.cpp @@ -0,0 +1,20 @@ +#include <Eigen/Dense> +#include <iostream> + +using namespace Eigen; + +void copyUpperTriangularPart(MatrixXf& dst, const MatrixXf& src) +{ + dst.triangularView<Upper>() = src.triangularView<Upper>(); +} + +int main() +{ + MatrixXf m1 = MatrixXf::Ones(4,4); + MatrixXf m2 = MatrixXf::Random(4,4); + std::cout << "m2 before copy:" << std::endl; + std::cout << m2 << std::endl << std::endl; + copyUpperTriangularPart(m2, m1); + std::cout << "m2 after copy:" << std::endl; + std::cout << m2 << std::endl << std::endl; +} |