// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include "ReshapeTestImpl.hpp" #include "ElementwiseUnaryTestImpl.hpp" template LayerTestResult Rsqrt2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory) { const unsigned int inputShape[] = { 2, 2 }; std::vector inputValues { 1.f, 4.f, 16.f, 25.f }; std::vector expectedOutputValues { 1.f, 0.5f, 0.25f, 0.2f }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Rsqrt, inputShape, inputValues, inputShape, expectedOutputValues, tensorHandleFactory); } template LayerTestResult Rsqrt3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory) { const unsigned int inputShape[] = { 3, 1, 2 }; std::vector inputValues { 1.f, 4.f, 16.f, 25.f, 64.f, 100.f }; std::vector expectedOutputValues { 1.f, 0.5f, 0.25f, 0.2f, 0.125f, 0.1f }; return ElementwiseUnaryTestHelper<3, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Rsqrt, inputShape, inputValues, inputShape, expectedOutputValues, tensorHandleFactory); } template LayerTestResult RsqrtZeroTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory) { const unsigned int inputShape[] = { 1, 2 }; std::vector inputValues { 0.f, -0.f }; std::vector expectedOutputValues { INFINITY, -INFINITY }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Rsqrt, inputShape, inputValues, inputShape, expectedOutputValues, tensorHandleFactory); } template LayerTestResult RsqrtNegativeTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory) { const unsigned int inputShape[] = { 1, 2 }; std::vector inputValues { -25.f, -16.f }; std::vector expectedOutputValues { -NAN, -NAN }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Rsqrt, inputShape, inputValues, inputShape, expectedOutputValues, tensorHandleFactory); } // // Explicit template specializations // template LayerTestResult, 2> Rsqrt2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> Rsqrt2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> Rsqrt2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> Rsqrt2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> Rsqrt2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Rsqrt3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Rsqrt3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Rsqrt3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Rsqrt3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Rsqrt3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> RsqrtZeroTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> RsqrtNegativeTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory);