// // Copyright © 2020 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include "ExpTestImpl.hpp" #include "ElementwiseUnaryTestImpl.hpp" template LayerTestResult Exp2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { const unsigned int inputShape[] = { 2, 2 }; std::vector inputValues { 3.0f, 2.0f, 1.0f, 1.1f }; std::vector expectedOutputValues { 20.085536923188f, 7.389056098931f, 2.718281828459f, 3.004166023946f }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Exp, inputShape, inputValues, inputShape, expectedOutputValues); } template LayerTestResult Exp3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { const unsigned int inputShape[] = { 3, 1, 2 }; std::vector inputValues { 5.0f, 4.0f, 3.0f, 2.0f, 1.0f, 1.1f }; std::vector expectedOutputValues { 148.413159102577f, 54.598150033144f, 20.085536923188f, 7.389056098931f, 2.718281828459f, 3.004166023946f }; return ElementwiseUnaryTestHelper<3, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Exp, inputShape, inputValues, inputShape, expectedOutputValues); } template LayerTestResult ExpZeroTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { const unsigned int inputShape[] = { 1, 2 }; std::vector inputValues { 0.f, 0.f }; std::vector expectedOutputValues { 1.0f, 1.0f }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Exp, inputShape, inputValues, inputShape, expectedOutputValues); } template LayerTestResult ExpNegativeTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { const unsigned int inputShape[] = { 1, 2 }; std::vector inputValues { -5.9f, -5.8f }; std::vector expectedOutputValues { 0.0027394448187683684f, 0.0030275547453758153f, }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Exp, inputShape, inputValues, inputShape, expectedOutputValues); } // // Explicit template specializations // template LayerTestResult, 2> Exp2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> Exp2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> Exp2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> Exp2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> Exp2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Exp3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Exp3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Exp3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Exp3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Exp3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> ExpZeroTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> ExpNegativeTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);