mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-07 13:41:54 +08:00
add part<SelfAdjoint>... it's never too late and I need this for eigen2support
This commit is contained in:
parent
0c8a25ef94
commit
1869a02f52
@ -121,11 +121,40 @@ template<typename MatrixType> void triangular(const MatrixType& m)
|
|||||||
m3.setZero();
|
m3.setZero();
|
||||||
m3.template part<Eigen::UpperTriangular>().setOnes();
|
m3.template part<Eigen::UpperTriangular>().setOnes();
|
||||||
VERIFY_IS_APPROX(m2,m3);
|
VERIFY_IS_APPROX(m2,m3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void selfadjoint()
|
||||||
|
{
|
||||||
|
Matrix2i m;
|
||||||
|
m << 1, 2,
|
||||||
|
3, 4;
|
||||||
|
VERIFY(m.part<SelfAdjoint>() == m);
|
||||||
|
|
||||||
|
Matrix2i m1 = Matrix2i::Zero();
|
||||||
|
m1.part<SelfAdjoint>() = m;
|
||||||
|
Matrix2i ref1;
|
||||||
|
ref1 << 1, 2,
|
||||||
|
2, 4;
|
||||||
|
VERIFY(m1 == ref1);
|
||||||
|
|
||||||
|
Matrix2i m2 = Matrix2i::Zero();
|
||||||
|
m2.part<SelfAdjoint>() = m.part<UpperTriangular>();
|
||||||
|
Matrix2i ref2;
|
||||||
|
ref2 << 1, 2,
|
||||||
|
2, 4;
|
||||||
|
VERIFY(m2 == ref2);
|
||||||
|
|
||||||
|
Matrix2i m3 = Matrix2i::Zero();
|
||||||
|
m3.part<SelfAdjoint>() = m.part<LowerTriangular>();
|
||||||
|
Matrix2i ref3;
|
||||||
|
ref3 << 1, 0,
|
||||||
|
0, 4;
|
||||||
|
VERIFY(m3 == ref3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_triangular()
|
void test_triangular()
|
||||||
{
|
{
|
||||||
|
CALL_SUBTEST( selfadjoint() );
|
||||||
for(int i = 0; i < g_repeat ; i++) {
|
for(int i = 0; i < g_repeat ; i++) {
|
||||||
CALL_SUBTEST( triangular(Matrix<float, 1, 1>()) );
|
CALL_SUBTEST( triangular(Matrix<float, 1, 1>()) );
|
||||||
CALL_SUBTEST( triangular(Matrix<float, 2, 2>()) );
|
CALL_SUBTEST( triangular(Matrix<float, 2, 2>()) );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user