cxx11_tensor_of_const_values.cpp File Reference
#include "main.h"
#include <Eigen/CXX11/Tensor>

Functions

static void test_assign ()
 
static void test_plus ()
 
static void test_plus_equal ()
 
 EIGEN_DECLARE_TEST (cxx11_tensor_of_const_values)
 

Function Documentation

◆ EIGEN_DECLARE_TEST()

EIGEN_DECLARE_TEST ( cxx11_tensor_of_const_values  )
94  {
98 }
static void test_plus()
Definition: cxx11_tensor_of_const_values.cpp:51
static void test_plus_equal()
Definition: cxx11_tensor_of_const_values.cpp:75
static void test_assign()
Definition: cxx11_tensor_of_const_values.cpp:17
#define CALL_SUBTEST(FUNC)
Definition: main.h:382

References CALL_SUBTEST, test_assign(), test_plus(), and test_plus_equal().

◆ test_assign()

static void test_assign ( )
static
17  {
18  float data1[6];
20  float data2[6];
21  const TensorMap<Tensor<float, 2>> mat2(data2, 2, 3);
22 
23  for (int i = 0; i < 6; ++i) {
24  data1[i] = i;
25  data2[i] = -i;
26  }
27 
28  Tensor<float, 2> rslt1;
29  rslt1 = mat1;
30  Tensor<float, 2> rslt2;
31  rslt2 = mat2;
32 
33  Tensor<float, 2> rslt3 = mat1;
34  Tensor<float, 2> rslt4 = mat2;
35 
36  Tensor<float, 2> rslt5(mat1);
37  Tensor<float, 2> rslt6(mat2);
38 
39  for (int i = 0; i < 2; ++i) {
40  for (int j = 0; j < 3; ++j) {
41  VERIFY_IS_APPROX(rslt1(i, j), static_cast<float>(i + 2 * j));
42  VERIFY_IS_APPROX(rslt2(i, j), static_cast<float>(-i - 2 * j));
43  VERIFY_IS_APPROX(rslt3(i, j), static_cast<float>(i + 2 * j));
44  VERIFY_IS_APPROX(rslt4(i, j), static_cast<float>(-i - 2 * j));
45  VERIFY_IS_APPROX(rslt5(i, j), static_cast<float>(i + 2 * j));
46  VERIFY_IS_APPROX(rslt6(i, j), static_cast<float>(-i - 2 * j));
47  }
48  }
49 }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
MatrixXd mat1(size, size)
A tensor expression mapping an existing array of data.
Definition: TensorMap.h:33
The tensor class.
Definition: Tensor.h:68
#define VERIFY_IS_APPROX(a, b)
Definition: integer_types.cpp:13
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References i, j, mat1(), and VERIFY_IS_APPROX.

Referenced by EIGEN_DECLARE_TEST().

◆ test_plus()

static void test_plus ( )
static
51  {
52  float data1[6];
54  float data2[6];
55  TensorMap<Tensor<float, 2>> mat2(data2, 2, 3);
56 
57  for (int i = 0; i < 6; ++i) {
58  data1[i] = i;
59  data2[i] = -i;
60  }
61 
62  Tensor<float, 2> sum1;
63  sum1 = mat1 + mat2;
64  Tensor<float, 2> sum2;
65  sum2 = mat2 + mat1;
66 
67  for (int i = 0; i < 2; ++i) {
68  for (int j = 0; j < 3; ++j) {
69  VERIFY_IS_APPROX(sum1(i, j), 0.0f);
70  VERIFY_IS_APPROX(sum2(i, j), 0.0f);
71  }
72  }
73 }

References i, j, mat1(), and VERIFY_IS_APPROX.

Referenced by EIGEN_DECLARE_TEST().

◆ test_plus_equal()

static void test_plus_equal ( )
static
75  {
76  float data1[6];
78  float data2[6];
79  TensorMap<Tensor<float, 2>> mat2(data2, 2, 3);
80 
81  for (int i = 0; i < 6; ++i) {
82  data1[i] = i;
83  data2[i] = -i;
84  }
85  mat2 += mat1;
86 
87  for (int i = 0; i < 2; ++i) {
88  for (int j = 0; j < 3; ++j) {
89  VERIFY_IS_APPROX(mat2(i, j), 0.0f);
90  }
91  }
92 }

References i, j, mat1(), and VERIFY_IS_APPROX.

Referenced by EIGEN_DECLARE_TEST().