ArmNN
 20.02
AbsTestImpl.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "AbsTestImpl.hpp"
8 
9 
10 template<armnn::DataType ArmnnType, typename T>
12  armnn::IWorkloadFactory& workloadFactory,
14 {
15  const unsigned int inputShape[] = { 2, 2 };
16 
17  std::vector<float> inputValues
18  {
19  -0.1f, 0.2f,
20  0.3f, -0.4f
21  };
22 
23  // Calculate output values for input.
24  auto f = [](float value)
25  {
26  return std::abs(value);
27  };
28  std::vector<float> expectedOutputValues(inputValues.size());
29  std::transform(inputValues.begin(), inputValues.end(), expectedOutputValues.begin(), f);
30 
31  return ElementwiseUnaryTestHelper<2, ArmnnType>(
32  workloadFactory,
33  memoryManager,
35  inputShape,
36  inputValues,
37  inputShape,
38  expectedOutputValues);
39 }
40 
41 template<armnn::DataType ArmnnType, typename T>
43  armnn::IWorkloadFactory& workloadFactory,
45 {
46  const unsigned int inputShape[] = { 3, 1, 2 };
47 
48  std::vector<float> inputValues
49  {
50  -0.1f, -0.2f, -0.3f,
51  0.1f, 0.2f, 0.3f
52  };
53 
54  auto f = [](float value)
55  {
56  return std::abs(value);
57  };
58  std::vector<float>expectedOutputValues(inputValues.size());
59  std::transform(inputValues.begin(), inputValues.end(), expectedOutputValues.begin(), f);
60 
61  return ElementwiseUnaryTestHelper<3, ArmnnType>(
62  workloadFactory,
63  memoryManager,
65  inputShape,
66  inputValues,
67  inputShape,
68  expectedOutputValues);
69 }
70 
71 template<armnn::DataType ArmnnType, typename T>
73  armnn::IWorkloadFactory& workloadFactory,
75 {
76  const unsigned int inputShape[] = { 1, 2 };
77 
78  std::vector<float> inputValues
79  {
80  0.f, -0.f
81  };
82 
83  std::vector<float> expectedOutputValues
84  {
85  0.f, 0.f
86  };
87 
88  return ElementwiseUnaryTestHelper<2, ArmnnType>(
89  workloadFactory,
90  memoryManager,
92  inputShape,
93  inputValues,
94  inputShape,
95  expectedOutputValues);
96 }
97 
98 //
99 // Explicit template specializations
100 //
101 
103 Abs2dTest<armnn::DataType::Float32>(
104  armnn::IWorkloadFactory& workloadFactory,
106 
108 Abs2dTest<armnn::DataType::Float16>(
109  armnn::IWorkloadFactory& workloadFactory,
111 
113 Abs2dTest<armnn::DataType::QAsymmU8>(
114  armnn::IWorkloadFactory& workloadFactory,
116 
118 Abs2dTest<armnn::DataType::QSymmS16>(
119  armnn::IWorkloadFactory& workloadFactory,
121 
123 Abs3dTest<armnn::DataType::Float32>(
124  armnn::IWorkloadFactory& workloadFactory,
126 
128 Abs3dTest<armnn::DataType::Float16>(
129  armnn::IWorkloadFactory& workloadFactory,
131 
133 Abs3dTest<armnn::DataType::QAsymmU8>(
134  armnn::IWorkloadFactory& workloadFactory,
136 
138 Abs3dTest<armnn::DataType::QSymmS16>(
139  armnn::IWorkloadFactory& workloadFactory,
141 
143 AbsZeroTest<armnn::DataType::Float32>(
144  armnn::IWorkloadFactory& workloadFactory,
146 
148 AbsZeroTest<armnn::DataType::Float16>(
149  armnn::IWorkloadFactory& workloadFactory,
LayerTestResult< T, 2 > Abs2dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
Definition: AbsTestImpl.cpp:11
LayerTestResult< T, 3 > Abs3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
Definition: AbsTestImpl.cpp:42
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< T, 2 > AbsZeroTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
Definition: AbsTestImpl.cpp:72