ArmNN
 22.02
LogTestImpl.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "LogTestImpl.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.7182818284f,
20  1.0f, 1.1f
21  };
22 
23  std::vector<float> expectedOutputValues
24  {
25  1.09861228867f, 0.99999999997f,
26  0.0f, 0.0953101798f
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.7182818284f,
52  1.0f, 1.1f
53  };
54 
55  std::vector<float> expectedOutputValues
56  {
57  1.60943791243f, 1.38629436112f,
58  1.09861228867f, 0.99999999997f,
59  0.0f, 0.0953101798f
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  -std::numeric_limits<float>::infinity(), -std::numeric_limits<float>::infinity()
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  -std::numeric_limits<float>::quiet_NaN(), -std::numeric_limits<float>::quiet_NaN()
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 // Loglicit template specializations
133 //
134 
136 Log2dTest<armnn::DataType::Float32>(
137  armnn::IWorkloadFactory& workloadFactory,
139  const armnn::ITensorHandleFactory& tensorHandleFactory);
140 
142 Log2dTest<armnn::DataType::Float16>(
143  armnn::IWorkloadFactory& workloadFactory,
145  const armnn::ITensorHandleFactory& tensorHandleFactory);
146 
148 Log2dTest<armnn::DataType::QAsymmS8>(
149  armnn::IWorkloadFactory& workloadFactory,
151  const armnn::ITensorHandleFactory& tensorHandleFactory);
152 
154 Log2dTest<armnn::DataType::QAsymmU8>(
155  armnn::IWorkloadFactory& workloadFactory,
157  const armnn::ITensorHandleFactory& tensorHandleFactory);
158 
160 Log2dTest<armnn::DataType::QSymmS16>(
161  armnn::IWorkloadFactory& workloadFactory,
163  const armnn::ITensorHandleFactory& tensorHandleFactory);
164 
166 Log3dTest<armnn::DataType::Float32>(
167  armnn::IWorkloadFactory& workloadFactory,
169  const armnn::ITensorHandleFactory& tensorHandleFactory);
170 
172 Log3dTest<armnn::DataType::Float16>(
173  armnn::IWorkloadFactory& workloadFactory,
175  const armnn::ITensorHandleFactory& tensorHandleFactory);
176 
178 Log3dTest<armnn::DataType::QAsymmS8>(
179  armnn::IWorkloadFactory& workloadFactory,
181  const armnn::ITensorHandleFactory& tensorHandleFactory);
182 
184 Log3dTest<armnn::DataType::QAsymmU8>(
185  armnn::IWorkloadFactory& workloadFactory,
187  const armnn::ITensorHandleFactory& tensorHandleFactory);
188 
190 Log3dTest<armnn::DataType::QSymmS16>(
191  armnn::IWorkloadFactory& workloadFactory,
193  const armnn::ITensorHandleFactory& tensorHandleFactory);
194 
196 LogZeroTest<armnn::DataType::Float32>(
197  armnn::IWorkloadFactory& workloadFactory,
199  const armnn::ITensorHandleFactory& tensorHandleFactory);
200 
202 LogNegativeTest<armnn::DataType::Float32>(
203  armnn::IWorkloadFactory& workloadFactory,
205  const armnn::ITensorHandleFactory& tensorHandleFactory);
LayerTestResult< T, 2 > Log2dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Definition: LogTestImpl.cpp:10
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< T, 2 > LogNegativeTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 2 > LogZeroTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Definition: LogTestImpl.cpp:74
LayerTestResult< T, 3 > Log3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Definition: LogTestImpl.cpp:41