ArmNN
 20.02
RsqrtTestImpl.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 "ReshapeTestImpl.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  1.f, 4.f,
20  16.f, 25.f
21  };
22 
23  std::vector<float> expectedOutputValues
24  {
25  1.f, 0.5f,
26  0.25f, 0.2f
27  };
28 
29  return ElementwiseUnaryTestHelper<2, ArmnnType>(
30  workloadFactory,
31  memoryManager,
33  inputShape,
34  inputValues,
35  inputShape,
36  expectedOutputValues);
37 }
38 
39 template<armnn::DataType ArmnnType, typename T>
41  armnn::IWorkloadFactory& workloadFactory,
43 {
44  const unsigned int inputShape[] = { 3, 1, 2 };
45 
46  std::vector<float> inputValues
47  {
48  1.f, 4.f, 16.f,
49  25.f, 64.f, 100.f
50  };
51 
52  std::vector<float> expectedOutputValues
53  {
54  1.f, 0.5f, 0.25f,
55  0.2f, 0.125f, 0.1f
56  };
57 
58  return ElementwiseUnaryTestHelper<3, ArmnnType>(
59  workloadFactory,
60  memoryManager,
62  inputShape,
63  inputValues,
64  inputShape,
65  expectedOutputValues);
66 }
67 
68 template<armnn::DataType ArmnnType, typename T>
70  armnn::IWorkloadFactory& workloadFactory,
72 {
73  const unsigned int inputShape[] = { 1, 2 };
74 
75  std::vector<float> inputValues
76  {
77  0.f, -0.f
78  };
79 
80  std::vector<float> expectedOutputValues
81  {
82  INFINITY, -INFINITY
83  };
84 
85  return ElementwiseUnaryTestHelper<2, ArmnnType>(
86  workloadFactory,
87  memoryManager,
89  inputShape,
90  inputValues,
91  inputShape,
92  expectedOutputValues);
93 }
94 
95 template<armnn::DataType ArmnnType, typename T>
97  armnn::IWorkloadFactory& workloadFactory,
99 {
100  const unsigned int inputShape[] = { 1, 2 };
101 
102  std::vector<float> inputValues
103  {
104  -25.f, -16.f
105  };
106 
107  std::vector<float> expectedOutputValues
108  {
109  -NAN, -NAN
110  };
111 
112  return ElementwiseUnaryTestHelper<2, ArmnnType>(
113  workloadFactory,
114  memoryManager,
116  inputShape,
117  inputValues,
118  inputShape,
119  expectedOutputValues);
120 }
121 
122 //
123 // Explicit template specializations
124 //
125 
127 Rsqrt2dTest<armnn::DataType::Float32>(
128  armnn::IWorkloadFactory& workloadFactory,
130 
132 Rsqrt2dTest<armnn::DataType::Float16>(
133  armnn::IWorkloadFactory& workloadFactory,
135 
137 Rsqrt2dTest<armnn::DataType::QAsymmU8>(
138  armnn::IWorkloadFactory& workloadFactory,
140 
142 Rsqrt2dTest<armnn::DataType::QSymmS16>(
143  armnn::IWorkloadFactory& workloadFactory,
145 
147 Rsqrt3dTest<armnn::DataType::Float32>(
148  armnn::IWorkloadFactory& workloadFactory,
150 
152 Rsqrt3dTest<armnn::DataType::Float16>(
153  armnn::IWorkloadFactory& workloadFactory,
155 
157 Rsqrt3dTest<armnn::DataType::QAsymmU8>(
158  armnn::IWorkloadFactory& workloadFactory,
160 
162 Rsqrt3dTest<armnn::DataType::QSymmS16>(
163  armnn::IWorkloadFactory& workloadFactory,
165 
167 RsqrtZeroTest<armnn::DataType::Float32>(
168  armnn::IWorkloadFactory& workloadFactory,
170 
172 RsqrtNegativeTest<armnn::DataType::Float32>(
173  armnn::IWorkloadFactory& workloadFactory,
LayerTestResult< T, 2 > RsqrtNegativeTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< T, 2 > RsqrtZeroTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< T, 3 > Rsqrt3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< T, 2 > Rsqrt2dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)