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

Function vectorwiseop_array

test/vectorwiseop.cpp:16–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14#include "main.h"
15
16template<typename ArrayType> void vectorwiseop_array(const ArrayType& m)
17{
18 typedef typename ArrayType::Index Index;
19 typedef typename ArrayType::Scalar Scalar;
20 typedef Array<Scalar, ArrayType::RowsAtCompileTime, 1> ColVectorType;
21 typedef Array<Scalar, 1, ArrayType::ColsAtCompileTime> RowVectorType;
22
23 Index rows = m.rows();
24 Index cols = m.cols();
25 Index r = internal::random<Index>(0, rows-1),
26 c = internal::random<Index>(0, cols-1);
27
28 ArrayType m1 = ArrayType::Random(rows, cols),
29 m2(rows, cols),
30 m3(rows, cols);
31
32 ColVectorType colvec = ColVectorType::Random(rows);
33 RowVectorType rowvec = RowVectorType::Random(cols);
34
35 // test addition
36
37 m2 = m1;
38 m2.colwise() += colvec;
39 VERIFY_IS_APPROX(m2, m1.colwise() + colvec);
40 VERIFY_IS_APPROX(m2.col(c), m1.col(c) + colvec);
41
42 VERIFY_RAISES_ASSERT(m2.colwise() += colvec.transpose());
43 VERIFY_RAISES_ASSERT(m1.colwise() + colvec.transpose());
44
45 m2 = m1;
46 m2.rowwise() += rowvec;
47 VERIFY_IS_APPROX(m2, m1.rowwise() + rowvec);
48 VERIFY_IS_APPROX(m2.row(r), m1.row(r) + rowvec);
49
50 VERIFY_RAISES_ASSERT(m2.rowwise() += rowvec.transpose());
51 VERIFY_RAISES_ASSERT(m1.rowwise() + rowvec.transpose());
52
53 // test substraction
54
55 m2 = m1;
56 m2.colwise() -= colvec;
57 VERIFY_IS_APPROX(m2, m1.colwise() - colvec);
58 VERIFY_IS_APPROX(m2.col(c), m1.col(c) - colvec);
59
60 VERIFY_RAISES_ASSERT(m2.colwise() -= colvec.transpose());
61 VERIFY_RAISES_ASSERT(m1.colwise() - colvec.transpose());
62
63 m2 = m1;
64 m2.rowwise() -= rowvec;
65 VERIFY_IS_APPROX(m2, m1.rowwise() - rowvec);
66 VERIFY_IS_APPROX(m2.row(r), m1.row(r) - rowvec);
67
68 VERIFY_RAISES_ASSERT(m2.rowwise() -= rowvec.transpose());
69 VERIFY_RAISES_ASSERT(m1.rowwise() - rowvec.transpose());
70
71 // test multiplication
72
73 m2 = m1;

Callers 1

test_vectorwiseopFunction · 0.85

Calls 11

colwiseMethod · 0.80
rowwiseMethod · 0.80
realMethod · 0.80
rowsMethod · 0.45
colsMethod · 0.45
colMethod · 0.45
transposeMethod · 0.45
rowMethod · 0.45
sumMethod · 0.45
allMethod · 0.45
anyMethod · 0.45

Tested by 1

test_vectorwiseopFunction · 0.68