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

Functions

static void test_simple_swap ()
 
static void test_swap_as_lvalue ()
 
 EIGEN_DECLARE_TEST (cxx11_tensor_layout_swap)
 

Function Documentation

◆ EIGEN_DECLARE_TEST()

EIGEN_DECLARE_TEST ( cxx11_tensor_layout_swap  )
53  {
56 }
static void test_swap_as_lvalue()
Definition: cxx11_tensor_layout_swap.cpp:34
static void test_simple_swap()
Definition: cxx11_tensor_layout_swap.cpp:16
#define CALL_SUBTEST(FUNC)
Definition: main.h:382

References CALL_SUBTEST, test_simple_swap(), and test_swap_as_lvalue().

◆ test_simple_swap()

static void test_simple_swap ( )
static
16  {
17  Tensor<float, 3, ColMajor> tensor(2, 3, 7);
18  tensor.setRandom();
19 
20  Tensor<float, 3, RowMajor> tensor2 = tensor.swap_layout();
21  VERIFY_IS_EQUAL(tensor.dimension(0), tensor2.dimension(2));
22  VERIFY_IS_EQUAL(tensor.dimension(1), tensor2.dimension(1));
23  VERIFY_IS_EQUAL(tensor.dimension(2), tensor2.dimension(0));
24 
25  for (int i = 0; i < 2; ++i) {
26  for (int j = 0; j < 3; ++j) {
27  for (int k = 0; k < 7; ++k) {
28  VERIFY_IS_EQUAL(tensor(i, j, k), tensor2(k, j, i));
29  }
30  }
31  }
32 }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorLayoutSwapOp< const Derived > swap_layout() const
Definition: TensorBase.h:1084
The tensor class.
Definition: Tensor.h:68
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index dimension(std::size_t n) const
Definition: Tensor.h:99
char char char int int * k
Definition: level2_impl.h:374
#define VERIFY_IS_EQUAL(a, b)
Definition: main.h:367
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References Eigen::Tensor< Scalar_, NumIndices_, Options_, IndexType_ >::dimension(), i, j, k, Eigen::TensorBase< Derived, AccessLevel >::setRandom(), Eigen::TensorBase< Derived, AccessLevel >::swap_layout(), and VERIFY_IS_EQUAL.

Referenced by EIGEN_DECLARE_TEST().

◆ test_swap_as_lvalue()

static void test_swap_as_lvalue ( )
static
34  {
35  Tensor<float, 3, ColMajor> tensor(2, 3, 7);
36  tensor.setRandom();
37 
38  Tensor<float, 3, RowMajor> tensor2(7, 3, 2);
39  tensor2.swap_layout() = tensor;
40  VERIFY_IS_EQUAL(tensor.dimension(0), tensor2.dimension(2));
41  VERIFY_IS_EQUAL(tensor.dimension(1), tensor2.dimension(1));
42  VERIFY_IS_EQUAL(tensor.dimension(2), tensor2.dimension(0));
43 
44  for (int i = 0; i < 2; ++i) {
45  for (int j = 0; j < 3; ++j) {
46  for (int k = 0; k < 7; ++k) {
47  VERIFY_IS_EQUAL(tensor(i, j, k), tensor2(k, j, i));
48  }
49  }
50  }
51 }

References Eigen::Tensor< Scalar_, NumIndices_, Options_, IndexType_ >::dimension(), i, j, k, Eigen::TensorBase< Derived, AccessLevel >::setRandom(), Eigen::TensorBase< Derived, AccessLevel >::swap_layout(), and VERIFY_IS_EQUAL.

Referenced by EIGEN_DECLARE_TEST().