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

Function ref_vector

dependence/eigen-3.4.0/test/ref.cpp:80–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78}
79
80template<typename VectorType> void ref_vector(const VectorType& m)
81{
82 typedef typename VectorType::Scalar Scalar;
83 typedef typename VectorType::RealScalar RealScalar;
84 typedef Matrix<Scalar,Dynamic,1,VectorType::Options> DynMatrixType;
85 typedef Matrix<Scalar,Dynamic,Dynamic,ColMajor> MatrixType;
86 typedef Matrix<RealScalar,Dynamic,1,VectorType::Options> RealDynMatrixType;
87
88 typedef Ref<VectorType> RefMat;
89 typedef Ref<DynMatrixType> RefDynMat;
90 typedef Ref<const DynMatrixType> ConstRefDynMat;
91 typedef Ref<RealDynMatrixType , 0, InnerStride<> > RefRealMatWithStride;
92 typedef Ref<DynMatrixType , 0, InnerStride<> > RefMatWithStride;
93
94 Index size = m.size();
95
96 VectorType v1 = VectorType::Random(size),
97 v2 = v1;
98 MatrixType mat1 = MatrixType::Random(size,size),
99 mat2 = mat1,
100 mat3 = MatrixType::Random(size,size);
101
102 Index i = internal::random<Index>(0,size-1);
103 Index bsize = internal::random<Index>(1,size-i);
104
105 { RefMat rm0 = v1; VERIFY_IS_EQUAL(rm0, v1); }
106 { RefMat rm0 = v1.block(0,0,size,1); VERIFY_IS_EQUAL(rm0, v1); }
107 { RefDynMat rv1 = v1; VERIFY_IS_EQUAL(rv1, v1); }
108 { RefDynMat rv1 = v1.block(0,0,size,1); VERIFY_IS_EQUAL(rv1, v1); }
109 { VERIFY_RAISES_ASSERT( RefMat rm0 = v1.block(0, 0, size, 0); EIGEN_UNUSED_VARIABLE(rm0); ); }
110 if(VectorType::SizeAtCompileTime!=1)
111 { VERIFY_RAISES_ASSERT( RefDynMat rv1 = v1.block(0, 0, size, 0); EIGEN_UNUSED_VARIABLE(rv1); ); }
112
113 RefDynMat rv2 = v1.segment(i,bsize);
114 VERIFY_IS_EQUAL(rv2, v1.segment(i,bsize));
115 rv2.setOnes();
116 v2.segment(i,bsize).setOnes();
117 VERIFY_IS_EQUAL(v1, v2);
118
119 v2.segment(i,bsize).setRandom();
120 rv2 = v2.segment(i,bsize);
121 VERIFY_IS_EQUAL(v1, v2);
122
123 ConstRefDynMat rm3 = v1.segment(i,bsize);
124 v1.segment(i,bsize) *= 2;
125 v2.segment(i,bsize) *= 2;
126 VERIFY_IS_EQUAL(rm3, v2.segment(i,bsize));
127
128 RefRealMatWithStride rm4 = v1.real();
129 VERIFY_IS_EQUAL(rm4, v2.real());
130 rm4.array() += 1;
131 v2.real().array() += 1;
132 VERIFY_IS_EQUAL(v1, v2);
133
134 RefMatWithStride rm5 = mat1.row(i).transpose();
135 VERIFY_IS_EQUAL(rm5, mat1.row(i).transpose());
136 rm5.array() += 1;
137 mat2.row(i).array() += 1;

Callers 1

EIGEN_DECLARE_TESTFunction · 0.85

Calls 7

realMethod · 0.80
noaliasMethod · 0.80
sizeMethod · 0.45
blockMethod · 0.45
arrayMethod · 0.45
transposeMethod · 0.45
rowMethod · 0.45

Tested by

no test coverage detected