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

Function array_real

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

Source from the content-addressed store, hash-verified

203}
204
205template<typename ArrayType> void array_real(const ArrayType& m)
206{
207 using std::abs;
208 using std::sqrt;
209 typedef typename ArrayType::Scalar Scalar;
210 typedef typename NumTraits<Scalar>::Real RealScalar;
211
212 Index rows = m.rows();
213 Index cols = m.cols();
214
215 ArrayType m1 = ArrayType::Random(rows, cols),
216 m2 = ArrayType::Random(rows, cols),
217 m3(rows, cols),
218 m4 = m1;
219
220 m4 = (m4.abs()==Scalar(0)).select(1,m4);
221
222 Scalar s1 = internal::random<Scalar>();
223
224 // these tests are mostly to check possible compilation issues with free-functions.
225 VERIFY_IS_APPROX(m1.sin(), sin(m1));
226 VERIFY_IS_APPROX(m1.cos(), cos(m1));
227 VERIFY_IS_APPROX(m1.tan(), tan(m1));
228 VERIFY_IS_APPROX(m1.asin(), asin(m1));
229 VERIFY_IS_APPROX(m1.acos(), acos(m1));
230 VERIFY_IS_APPROX(m1.atan(), atan(m1));
231 VERIFY_IS_APPROX(m1.sinh(), sinh(m1));
232 VERIFY_IS_APPROX(m1.cosh(), cosh(m1));
233 VERIFY_IS_APPROX(m1.tanh(), tanh(m1));
234
235 VERIFY_IS_APPROX(m1.arg(), arg(m1));
236 VERIFY_IS_APPROX(m1.round(), round(m1));
237 VERIFY_IS_APPROX(m1.floor(), floor(m1));
238 VERIFY_IS_APPROX(m1.ceil(), ceil(m1));
239 VERIFY((m1.isNaN() == (Eigen::isnan)(m1)).all());
240 VERIFY((m1.isInf() == (Eigen::isinf)(m1)).all());
241 VERIFY((m1.isFinite() == (Eigen::isfinite)(m1)).all());
242 VERIFY_IS_APPROX(m1.inverse(), inverse(m1));
243 VERIFY_IS_APPROX(m1.abs(), abs(m1));
244 VERIFY_IS_APPROX(m1.abs2(), abs2(m1));
245 VERIFY_IS_APPROX(m1.square(), square(m1));
246 VERIFY_IS_APPROX(m1.cube(), cube(m1));
247 VERIFY_IS_APPROX(cos(m1+RealScalar(3)*m2), cos((m1+RealScalar(3)*m2).eval()));
248 VERIFY_IS_APPROX(m1.sign(), sign(m1));
249
250
251 // avoid NaNs with abs() so verification doesn't fail
252 m3 = m1.abs();
253 VERIFY_IS_APPROX(m3.sqrt(), sqrt(abs(m1)));
254 VERIFY_IS_APPROX(m3.rsqrt(), Scalar(1)/sqrt(abs(m1)));
255 VERIFY_IS_APPROX(rsqrt(m3), Scalar(1)/sqrt(abs(m1)));
256 VERIFY_IS_APPROX(m3.log(), log(m3));
257 VERIFY_IS_APPROX(m3.log1p(), log1p(m3));
258 VERIFY_IS_APPROX(m3.log10(), log10(m3));
259
260
261 VERIFY((!(m1>m2) == (m1<=m2)).all());
262

Callers 1

test_arrayFunction · 0.85

Calls 15

inverseFunction · 0.85
ConstantClass · 0.85
selectMethod · 0.80
absMethod · 0.80
sinMethod · 0.80
cosMethod · 0.80
sinhMethod · 0.80
coshMethod · 0.80
tanhMethod · 0.80
roundMethod · 0.80
floorMethod · 0.80
ceilMethod · 0.80

Tested by

no test coverage detected