mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-21 07:19:46 +08:00
59b83c14fd
After yet another question on the forum, I decided to write something on this common issue. Now we just need to link to this and get people to read it. Thanks to mattb on the forum for some links. Caveat: IANALL (I am not a language lawyer).
23 lines
677 B
C++
23 lines
677 B
C++
#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;
|
|
}
|