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

Function vectorwiseop_array

dependence/eigen-3.4.0/test/vectorwiseop.cpp:16–127  ·  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::Scalar Scalar;
19 typedef Array<Scalar, ArrayType::RowsAtCompileTime, 1> ColVectorType;
20 typedef Array<Scalar, 1, ArrayType::ColsAtCompileTime> RowVectorType;
21
22 Index rows = m.rows();
23 Index cols = m.cols();
24 Index r = internal::random<Index>(0, rows-1),
25 c = internal::random<Index>(0, cols-1);
26
27 ArrayType m1 = ArrayType::Random(rows, cols),
28 m2(rows, cols),
29 m3(rows, cols);
30
31 ColVectorType colvec = ColVectorType::Random(rows);
32 RowVectorType rowvec = RowVectorType::Random(cols);
33
34 // test addition
35
36 m2 = m1;
37 m2.colwise() += colvec;
38 VERIFY_IS_APPROX(m2, m1.colwise() + colvec);
39 VERIFY_IS_APPROX(m2.col(c), m1.col(c) + colvec);
40
41 VERIFY_RAISES_ASSERT(m2.colwise() += colvec.transpose());
42 VERIFY_RAISES_ASSERT(m1.colwise() + colvec.transpose());
43
44 m2 = m1;
45 m2.rowwise() += rowvec;
46 VERIFY_IS_APPROX(m2, m1.rowwise() + rowvec);
47 VERIFY_IS_APPROX(m2.row(r), m1.row(r) + rowvec);
48
49 VERIFY_RAISES_ASSERT(m2.rowwise() += rowvec.transpose());
50 VERIFY_RAISES_ASSERT(m1.rowwise() + rowvec.transpose());
51
52 // test substraction
53
54 m2 = m1;
55 m2.colwise() -= colvec;
56 VERIFY_IS_APPROX(m2, m1.colwise() - colvec);
57 VERIFY_IS_APPROX(m2.col(c), m1.col(c) - colvec);
58
59 VERIFY_RAISES_ASSERT(m2.colwise() -= colvec.transpose());
60 VERIFY_RAISES_ASSERT(m1.colwise() - colvec.transpose());
61
62 m2 = m1;
63 m2.rowwise() -= rowvec;
64 VERIFY_IS_APPROX(m2, m1.rowwise() - rowvec);
65 VERIFY_IS_APPROX(m2.row(r), m1.row(r) - rowvec);
66
67 VERIFY_RAISES_ASSERT(m2.rowwise() -= rowvec.transpose());
68 VERIFY_RAISES_ASSERT(m1.rowwise() - rowvec.transpose());
69
70 // test multiplication
71
72 m2 = m1;
73 m2.colwise() *= colvec;

Callers 1

EIGEN_DECLARE_TESTFunction · 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

no test coverage detected