MCPcopy Create free account
hub / github.com/ai-techsystems/deepC / comparisons

Function comparisons

packages/eigen-eigen-323c052e1731/test/array.cpp:129–203  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127}
128
129template<typename ArrayType> void comparisons(const ArrayType& m)
130{
131 using std::abs;
132 typedef typename ArrayType::Scalar Scalar;
133 typedef typename NumTraits<Scalar>::Real RealScalar;
134
135 Index rows = m.rows();
136 Index cols = m.cols();
137
138 Index r = internal::random<Index>(0, rows-1),
139 c = internal::random<Index>(0, cols-1);
140
141 ArrayType m1 = ArrayType::Random(rows, cols),
142 m2 = ArrayType::Random(rows, cols),
143 m3(rows, cols),
144 m4 = m1;
145
146 m4 = (m4.abs()==Scalar(0)).select(1,m4);
147
148 VERIFY(((m1 + Scalar(1)) > m1).all());
149 VERIFY(((m1 - Scalar(1)) < m1).all());
150 if (rows*cols>1)
151 {
152 m3 = m1;
153 m3(r,c) += 1;
154 VERIFY(! (m1 < m3).all() );
155 VERIFY(! (m1 > m3).all() );
156 }
157 VERIFY(!(m1 > m2 && m1 < m2).any());
158 VERIFY((m1 <= m2 || m1 >= m2).all());
159
160 // comparisons array to scalar
161 VERIFY( (m1 != (m1(r,c)+1) ).any() );
162 VERIFY( (m1 > (m1(r,c)-1) ).any() );
163 VERIFY( (m1 < (m1(r,c)+1) ).any() );
164 VERIFY( (m1 == m1(r,c) ).any() );
165
166 // comparisons scalar to array
167 VERIFY( ( (m1(r,c)+1) != m1).any() );
168 VERIFY( ( (m1(r,c)-1) < m1).any() );
169 VERIFY( ( (m1(r,c)+1) > m1).any() );
170 VERIFY( ( m1(r,c) == m1).any() );
171
172 // test Select
173 VERIFY_IS_APPROX( (m1<m2).select(m1,m2), m1.cwiseMin(m2) );
174 VERIFY_IS_APPROX( (m1>m2).select(m1,m2), m1.cwiseMax(m2) );
175 Scalar mid = (m1.cwiseAbs().minCoeff() + m1.cwiseAbs().maxCoeff())/Scalar(2);
176 for (int j=0; j<cols; ++j)
177 for (int i=0; i<rows; ++i)
178 m3(i,j) = abs(m1(i,j))<mid ? 0 : m1(i,j);
179 VERIFY_IS_APPROX( (m1.abs()<ArrayType::Constant(rows,cols,mid))
180 .select(ArrayType::Zero(rows,cols),m1), m3);
181 // shorter versions:
182 VERIFY_IS_APPROX( (m1.abs()<ArrayType::Constant(rows,cols,mid))
183 .select(0,m1), m3);
184 VERIFY_IS_APPROX( (m1.abs()>=ArrayType::Constant(rows,cols,mid))
185 .select(m1,0), m3);
186 // even shorter version:

Callers 1

test_arrayFunction · 0.70

Calls 15

ConstantClass · 0.85
selectMethod · 0.80
absMethod · 0.80
cwiseMinMethod · 0.80
cwiseMaxMethod · 0.80
colwiseMethod · 0.80
rowwiseMethod · 0.80
absFunction · 0.50
rowsMethod · 0.45
colsMethod · 0.45
allMethod · 0.45
anyMethod · 0.45

Tested by

no test coverage detected