ArmNN
 22.05
ExpTestImpl.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 "ExpTestImpl.hpp"
8 
9 template<armnn::DataType ArmnnType, typename T>
11  armnn::IWorkloadFactory& workloadFactory,
13  const armnn::ITensorHandleFactory& tensorHandleFactory)
14 {
15  const unsigned int inputShape[] = { 2, 2 };
16 
17  std::vector<float> inputValues
18  {
19  3.0f, 2.0f,
20  1.0f, 1.1f
21  };
22 
23  std::vector<float> expectedOutputValues
24  {
25  20.085536923188f, 7.389056098931f,
26  2.718281828459f, 3.004166023946f
27  };
28 
29  return ElementwiseUnaryTestHelper<2, ArmnnType>(
30  workloadFactory,
31  memoryManager,
33  inputShape,
34  inputValues,
35  inputShape,
36  expectedOutputValues,
37  tensorHandleFactory);
38 }
39 
40 template<armnn::DataType ArmnnType, typename T>
42  armnn::IWorkloadFactory& workloadFactory,
44  const armnn::ITensorHandleFactory& tensorHandleFactory)
45 {
46  const unsigned int inputShape[] = { 3, 1, 2 };
47 
48  std::vector<float> inputValues
49  {
50  5.0f, 4.0f,
51  3.0f, 2.0f,
52  1.0f, 1.1f
53  };
54 
55  std::vector<float> expectedOutputValues
56  {
57  148.413159102577f, 54.598150033144f,
58  20.085536923188f, 7.389056098931f,
59  2.718281828459f, 3.004166023946f
60  };
61 
62  return ElementwiseUnaryTestHelper<3, ArmnnType>(
63  workloadFactory,
64  memoryManager,
66  inputShape,
67  inputValues,
68  inputShape,
69  expectedOutputValues,
70  tensorHandleFactory);
71 }
72 
73 template<armnn::DataType ArmnnType, typename T>
75  armnn::IWorkloadFactory& workloadFactory,
77  const armnn::ITensorHandleFactory& tensorHandleFactory)
78 {
79  const unsigned int inputShape[] = { 1, 2 };
80 
81  std::vector<float> inputValues
82  {
83  0.f, 0.f
84  };
85 
86  std::vector<float> expectedOutputValues
87  {
88  1.0f, 1.0f
89  };
90 
91  return ElementwiseUnaryTestHelper<2, ArmnnType>(
92  workloadFactory,
93  memoryManager,
95  inputShape,
96  inputValues,
97  inputShape,
98  expectedOutputValues,
99  tensorHandleFactory);
100 }
101 
102 template<armnn::DataType ArmnnType, typename T>
104  armnn::IWorkloadFactory& workloadFactory,
106  const armnn::ITensorHandleFactory& tensorHandleFactory)
107 {
108  const unsigned int inputShape[] = { 1, 2 };
109 
110  std::vector<float> inputValues
111  {
112  -5.9f, -5.8f
113  };
114 
115  std::vector<float> expectedOutputValues
116  {
117  0.0027394448187683684f, 0.0030275547453758153f,
118  };
119 
120  return ElementwiseUnaryTestHelper<2, ArmnnType>(
121  workloadFactory,
122  memoryManager,
124  inputShape,
125  inputValues,
126  inputShape,
127  expectedOutputValues,
128  tensorHandleFactory);
129 }
130 
131 //
132 // Explicit template specializations
133 //
134 
136 Exp2dTest<armnn::DataType::Float32>(
137  armnn::IWorkloadFactory& workloadFactory,
139  const armnn::ITensorHandleFactory& tensorHandleFactory);
140 
142 Exp2dTest<armnn::DataType::Float16>(
143  armnn::IWorkloadFactory& workloadFactory,
145  const armnn::ITensorHandleFactory& tensorHandleFactory);
146 
148 Exp2dTest<armnn::DataType::QAsymmS8>(
149  armnn::IWorkloadFactory& workloadFactory,
151  const armnn::ITensorHandleFactory& tensorHandleFactory);
152 
154 Exp2dTest<armnn::DataType::QAsymmU8>(
155  armnn::IWorkloadFactory& workloadFactory,
157  const armnn::ITensorHandleFactory& tensorHandleFactory);
158 
160 Exp2dTest<armnn::DataType::QSymmS16>(
161  armnn::IWorkloadFactory& workloadFactory,
163  const armnn::ITensorHandleFactory& tensorHandleFactory);
164 
166 Exp3dTest<armnn::DataType::Float32>(
167  armnn::IWorkloadFactory& workloadFactory,
169  const armnn::ITensorHandleFactory& tensorHandleFactory);
170 
172 Exp3dTest<armnn::DataType::Float16>(
173  armnn::IWorkloadFactory& workloadFactory,
175  const armnn::ITensorHandleFactory& tensorHandleFactory);
176 
178 Exp3dTest<armnn::DataType::QAsymmS8>(
179  armnn::IWorkloadFactory& workloadFactory,
181  const armnn::ITensorHandleFactory& tensorHandleFactory);
182 
184 Exp3dTest<armnn::DataType::QAsymmU8>(
185  armnn::IWorkloadFactory& workloadFactory,
187  const armnn::ITensorHandleFactory& tensorHandleFactory);
188 
190 Exp3dTest<armnn::DataType::QSymmS16>(
191  armnn::IWorkloadFactory& workloadFactory,
193  const armnn::ITensorHandleFactory& tensorHandleFactory);
194 
196 ExpZeroTest<armnn::DataType::Float32>(
197  armnn::IWorkloadFactory& workloadFactory,
199  const armnn::ITensorHandleFactory& tensorHandleFactory);
200 
202 ExpNegativeTest<armnn::DataType::Float32>(
203  armnn::IWorkloadFactory& workloadFactory,
205  const armnn::ITensorHandleFactory& tensorHandleFactory);
LayerTestResult< T, 2 > ExpNegativeTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 3 > Exp3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Definition: ExpTestImpl.cpp:41
LayerTestResult< T, 2 > ExpZeroTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Definition: ExpTestImpl.cpp:74
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< T, 2 > Exp2dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Definition: ExpTestImpl.cpp:10