ArmNN
 21.02
NegTestImpl.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2020 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "NegTestImpl.hpp"
8 
9 
10 template<armnn::DataType ArmnnType, typename T>
12  armnn::IWorkloadFactory& workloadFactory,
14  const armnn::ITensorHandleFactory& tensorHandleFactory)
15 {
16  const unsigned int inputShape[] = { 2, 2 };
17 
18  std::vector<float> inputValues
19  {
20  1.f, 1.f,
21  2.f, 25.f
22  };
23 
24  std::vector<float> expectedOutputValues
25  {
26  -1.f, -1.f,
27  -2.f, -25.f
28  };
29 
30  return ElementwiseUnaryTestHelper<2, ArmnnType>(
31  workloadFactory,
32  memoryManager,
34  inputShape,
35  inputValues,
36  inputShape,
37  expectedOutputValues,
38  tensorHandleFactory);
39 }
40 
41 template<armnn::DataType ArmnnType, typename T>
43  armnn::IWorkloadFactory& workloadFactory,
45  const armnn::ITensorHandleFactory& tensorHandleFactory)
46 {
47  const unsigned int inputShape[] = { 3, 1, 2 };
48 
49  std::vector<float> inputValues
50  {
51  1.f, 0.f, 3.f,
52  25.f, 64.f, 100.f
53  };
54 
55  std::vector<float> expectedOutputValues
56  {
57  -1.f, 0.f, -3.f,
58  -25.f, -64.f, -100.f
59  };
60 
61  return ElementwiseUnaryTestHelper<3, ArmnnType>(
62  workloadFactory,
63  memoryManager,
65  inputShape,
66  inputValues,
67  inputShape,
68  expectedOutputValues,
69  tensorHandleFactory);
70 }
71 
72 template<armnn::DataType ArmnnType, typename T>
74  armnn::IWorkloadFactory& workloadFactory,
76  const armnn::ITensorHandleFactory& tensorHandleFactory)
77 {
78  const unsigned int inputShape[] = { 1, 2 };
79 
80  std::vector<float> inputValues
81  {
82  0.f, 0.f
83  };
84 
85  std::vector<float> expectedOutputValues
86  {
87  0.f, 0.f
88  };
89 
90  return ElementwiseUnaryTestHelper<2, ArmnnType>(
91  workloadFactory,
92  memoryManager,
94  inputShape,
95  inputValues,
96  inputShape,
97  expectedOutputValues,
98  tensorHandleFactory);
99 }
100 
101 template<armnn::DataType ArmnnType, typename T>
103  armnn::IWorkloadFactory& workloadFactory,
105  const armnn::ITensorHandleFactory& tensorHandleFactory)
106 {
107  const unsigned int inputShape[] = { 1, 2 };
108 
109  std::vector<float> inputValues
110  {
111  -25.f, -16.f
112  };
113 
114  std::vector<float> expectedOutputValues
115  {
116  25.f, 16.f
117  };
118 
119  return ElementwiseUnaryTestHelper<2, ArmnnType>(
120  workloadFactory,
121  memoryManager,
123  inputShape,
124  inputValues,
125  inputShape,
126  expectedOutputValues,
127  tensorHandleFactory);
128 }
129 
130 //
131 // Explicit template specializations
132 //
133 
135 Neg2dTest<armnn::DataType::Float32>(
136  armnn::IWorkloadFactory& workloadFactory,
138  const armnn::ITensorHandleFactory& tensorHandleFactory);
139 
141 Neg2dTest<armnn::DataType::Float16>(
142  armnn::IWorkloadFactory& workloadFactory,
144  const armnn::ITensorHandleFactory& tensorHandleFactory);
145 
147 Neg2dTest<armnn::DataType::QAsymmS8>(
148  armnn::IWorkloadFactory& workloadFactory,
150  const armnn::ITensorHandleFactory& tensorHandleFactory);
151 
153 Neg2dTest<armnn::DataType::QAsymmU8>(
154  armnn::IWorkloadFactory& workloadFactory,
156  const armnn::ITensorHandleFactory& tensorHandleFactory);
157 
159 Neg2dTest<armnn::DataType::QSymmS16>(
160  armnn::IWorkloadFactory& workloadFactory,
162  const armnn::ITensorHandleFactory& tensorHandleFactory);
163 
165 Neg3dTest<armnn::DataType::Float32>(
166  armnn::IWorkloadFactory& workloadFactory,
168  const armnn::ITensorHandleFactory& tensorHandleFactory);
169 
171 Neg3dTest<armnn::DataType::Float16>(
172  armnn::IWorkloadFactory& workloadFactory,
174  const armnn::ITensorHandleFactory& tensorHandleFactory);
175 
177 Neg3dTest<armnn::DataType::QAsymmS8>(
178  armnn::IWorkloadFactory& workloadFactory,
180  const armnn::ITensorHandleFactory& tensorHandleFactory);
181 
183 Neg3dTest<armnn::DataType::QAsymmU8>(
184  armnn::IWorkloadFactory& workloadFactory,
186  const armnn::ITensorHandleFactory& tensorHandleFactory);
187 
189 Neg3dTest<armnn::DataType::QSymmS16>(
190  armnn::IWorkloadFactory& workloadFactory,
192  const armnn::ITensorHandleFactory& tensorHandleFactory);
193 
195 NegZeroTest<armnn::DataType::Float32>(
196  armnn::IWorkloadFactory& workloadFactory,
198  const armnn::ITensorHandleFactory& tensorHandleFactory);
199 
201 NegNegativeTest<armnn::DataType::Float32>(
202  armnn::IWorkloadFactory& workloadFactory,
204  const armnn::ITensorHandleFactory& tensorHandleFactory);
LayerTestResult< T, 3 > Neg3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Definition: NegTestImpl.cpp:42
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< T, 2 > NegZeroTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Definition: NegTestImpl.cpp:73
LayerTestResult< T, 2 > Neg2dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Definition: NegTestImpl.cpp:11
LayerTestResult< T, 2 > NegNegativeTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)