MCPcopy Create free account
hub / github.com/LucaFulchir/libRaptorQ / vectorwiseop_array

Function vectorwiseop_array

external/eigen3/test/vectorwiseop.cpp:14–126  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12#include "main.h"
13
14template<typename ArrayType> void vectorwiseop_array(const ArrayType& m)
15{
16 typedef typename ArrayType::Index Index;
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
35 m2 = m1;
36 m2.colwise() += colvec;
37 VERIFY_IS_APPROX(m2, m1.colwise() + colvec);
38 VERIFY_IS_APPROX(m2.col(c), m1.col(c) + colvec);
39
40 VERIFY_RAISES_ASSERT(m2.colwise() += colvec.transpose());
41 VERIFY_RAISES_ASSERT(m1.colwise() + colvec.transpose());
42
43 m2 = m1;
44 m2.rowwise() += rowvec;
45 VERIFY_IS_APPROX(m2, m1.rowwise() + rowvec);
46 VERIFY_IS_APPROX(m2.row(r), m1.row(r) + rowvec);
47
48 VERIFY_RAISES_ASSERT(m2.rowwise() += rowvec.transpose());
49 VERIFY_RAISES_ASSERT(m1.rowwise() + rowvec.transpose());
50
51 // test substraction
52
53 m2 = m1;
54 m2.colwise() -= colvec;
55 VERIFY_IS_APPROX(m2, m1.colwise() - colvec);
56 VERIFY_IS_APPROX(m2.col(c), m1.col(c) - colvec);
57
58 VERIFY_RAISES_ASSERT(m2.colwise() -= colvec.transpose());
59 VERIFY_RAISES_ASSERT(m1.colwise() - colvec.transpose());
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 VERIFY_RAISES_ASSERT(m2.rowwise() -= rowvec.transpose());
67 VERIFY_RAISES_ASSERT(m1.rowwise() - rowvec.transpose());
68
69 // test multiplication
70
71 m2 = m1;

Callers 1

test_vectorwiseopFunction · 0.85

Calls 10

colwiseMethod · 0.80
rowwiseMethod · 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