gtsam
3rdparty
Eigen
unsupported
test
cxx11_tensor_const.cpp
Go to the documentation of this file.
1
// This file is part of Eigen, a lightweight C++ template library
2
// for linear algebra.
3
//
4
// Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
5
//
6
// This Source Code Form is subject to the terms of the Mozilla
7
// Public License v. 2.0. If a copy of the MPL was not distributed
8
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
10
#include "
main.h
"
11
12
#include <Eigen/CXX11/Tensor>
13
using
Eigen::Tensor
;
14
15
16
static
void
test_simple_assign
()
17
{
18
Tensor<int, 3>
random(2,3,7);
19
random.
setRandom
();
20
21
TensorMap<Tensor<const int, 3>
> constant(random.
data
(), 2, 3, 7);
22
Tensor<int, 3>
result
(2,3,7);
23
result
= constant;
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
((
result
(
i
,
j
,k)), random(
i
,
j
,k));
29
}
30
}
31
}
32
}
33
34
35
static
void
test_assign_of_const_tensor
()
36
{
37
Tensor<int, 3>
random(2,3,7);
38
random.
setRandom
();
39
40
TensorMap<Tensor<const int, 3>
> constant1(random.
data
(), 2, 3, 7);
41
TensorMap<const Tensor<int, 3>
> constant2(random.
data
(), 2, 3, 7);
42
const
TensorMap<Tensor<int, 3>
> constant3(random.
data
(), 2, 3, 7);
43
44
Tensor<int, 2>
result1 = constant1.chip(0, 2);
45
Tensor<int, 2>
result2 = constant2.chip(0, 2);
46
Tensor<int, 2>
result3 = constant3.chip(0, 2);
47
48
for
(
int
i
= 0;
i
< 2; ++
i
) {
49
for
(
int
j
= 0;
j
< 3; ++
j
) {
50
VERIFY_IS_EQUAL
((result1(
i
,
j
)), random(
i
,
j
,0));
51
VERIFY_IS_EQUAL
((result2(
i
,
j
)), random(
i
,
j
,0));
52
VERIFY_IS_EQUAL
((result3(
i
,
j
)), random(
i
,
j
,0));
53
}
54
}
55
}
56
57
58
EIGEN_DECLARE_TEST
(cxx11_tensor_const)
59
{
60
CALL_SUBTEST
(
test_simple_assign
());
61
CALL_SUBTEST
(
test_assign_of_const_tensor
());
62
}
Eigen::Tensor
The tensor class.
Definition:
Tensor.h:63
VERIFY_IS_EQUAL
#define VERIFY_IS_EQUAL(a, b)
Definition:
main.h:386
result
Values result
Definition:
OdometryOptimize.cpp:8
EIGEN_DECLARE_TEST
EIGEN_DECLARE_TEST(cxx11_tensor_const)
Definition:
cxx11_tensor_const.cpp:58
j
std::ptrdiff_t j
Definition:
tut_arithmetic_redux_minmax.cpp:2
Eigen::TensorMap
A tensor expression mapping an existing array of data.
Definition:
TensorForwardDeclarations.h:52
Eigen::TensorBase< Tensor< Scalar_, NumIndices_, Options_, IndexType_ > >::setRandom
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Tensor< Scalar_, NumIndices_, Options_, IndexType_ > & setRandom()
Definition:
TensorBase.h:996
test_simple_assign
static void test_simple_assign()
Definition:
cxx11_tensor_const.cpp:16
test_assign_of_const_tensor
static void test_assign_of_const_tensor()
Definition:
cxx11_tensor_const.cpp:35
main.h
Eigen::Tensor::data
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar * data()
Definition:
Tensor.h:104
i
int i
Definition:
BiCGSTAB_step_by_step.cpp:9
CALL_SUBTEST
#define CALL_SUBTEST(FUNC)
Definition:
main.h:399
gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:02:08