MCPcopy Create free account
hub / github.com/PX4/eigen / ref_matrix

Function ref_matrix

test/ref.cpp:33–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

31#endif
32
33template<typename MatrixType> void ref_matrix(const MatrixType& m)
34{
35 typedef typename MatrixType::Index Index;
36 typedef typename MatrixType::Scalar Scalar;
37 typedef typename MatrixType::RealScalar RealScalar;
38 typedef Matrix<Scalar,Dynamic,Dynamic,MatrixType::Options> DynMatrixType;
39 typedef Matrix<RealScalar,Dynamic,Dynamic,MatrixType::Options> RealDynMatrixType;
40
41 typedef Ref<MatrixType> RefMat;
42 typedef Ref<DynMatrixType> RefDynMat;
43 typedef Ref<const DynMatrixType> ConstRefDynMat;
44 typedef Ref<RealDynMatrixType , 0, Stride<Dynamic,Dynamic> > RefRealMatWithStride;
45
46 Index rows = m.rows(), cols = m.cols();
47
48 MatrixType m1 = MatrixType::Random(rows, cols),
49 m2 = m1;
50
51 Index i = internal::random<Index>(0,rows-1);
52 Index j = internal::random<Index>(0,cols-1);
53 Index brows = internal::random<Index>(1,rows-i);
54 Index bcols = internal::random<Index>(1,cols-j);
55
56 RefMat rm0 = m1;
57 VERIFY_IS_EQUAL(rm0, m1);
58 RefDynMat rm1 = m1;
59 VERIFY_IS_EQUAL(rm1, m1);
60 RefDynMat rm2 = m1.block(i,j,brows,bcols);
61 VERIFY_IS_EQUAL(rm2, m1.block(i,j,brows,bcols));
62 rm2.setOnes();
63 m2.block(i,j,brows,bcols).setOnes();
64 VERIFY_IS_EQUAL(m1, m2);
65
66 m2.block(i,j,brows,bcols).setRandom();
67 rm2 = m2.block(i,j,brows,bcols);
68 VERIFY_IS_EQUAL(m1, m2);
69
70 ConstRefDynMat rm3 = m1.block(i,j,brows,bcols);
71 m1.block(i,j,brows,bcols) *= 2;
72 m2.block(i,j,brows,bcols) *= 2;
73 VERIFY_IS_EQUAL(rm3, m2.block(i,j,brows,bcols));
74 RefRealMatWithStride rm4 = m1.real();
75 VERIFY_IS_EQUAL(rm4, m2.real());
76 rm4.array() += 1;
77 m2.real().array() += 1;
78 VERIFY_IS_EQUAL(m1, m2);
79}
80
81template<typename VectorType> void ref_vector(const VectorType& m)
82{

Callers 1

test_refFunction · 0.85

Calls 4

realMethod · 0.80
rowsMethod · 0.45
colsMethod · 0.45
arrayMethod · 0.45

Tested by 1

test_refFunction · 0.68