MCPcopy Create free account
hub / github.com/Derious/cuMPC / ref_matrix

Function ref_matrix

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

Callers 1

EIGEN_DECLARE_TESTFunction · 0.85

Calls 5

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

Tested by

no test coverage detected