MCPcopy Create free account
hub / github.com/avaxman/Directional / vectorwiseop_array

Function vectorwiseop_array

external/eigen/test/vectorwiseop.cpp:15–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

EIGEN_DECLARE_TESTFunction · 0.85

Calls 10

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

Tested by

no test coverage detected