// // Copyright © 2020 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include "NegTestImpl.hpp" #include "ElementwiseUnaryTestImpl.hpp" template LayerTestResult Neg2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { const unsigned int inputShape[] = { 2, 2 }; std::vector inputValues { 1.f, 1.f, 2.f, 25.f }; std::vector expectedOutputValues { -1.f, -1.f, -2.f, -25.f }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Neg, inputShape, inputValues, inputShape, expectedOutputValues); } template LayerTestResult Neg3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { const unsigned int inputShape[] = { 3, 1, 2 }; std::vector inputValues { 1.f, 0.f, 3.f, 25.f, 64.f, 100.f }; std::vector expectedOutputValues { -1.f, 0.f, -3.f, -25.f, -64.f, -100.f }; return ElementwiseUnaryTestHelper<3, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Neg, inputShape, inputValues, inputShape, expectedOutputValues); } template LayerTestResult NegZeroTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { const unsigned int inputShape[] = { 1, 2 }; std::vector inputValues { 0.f, 0.f }; std::vector expectedOutputValues { 0.f, 0.f }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Neg, inputShape, inputValues, inputShape, expectedOutputValues); } template LayerTestResult NegNegativeTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { const unsigned int inputShape[] = { 1, 2 }; std::vector inputValues { -25.f, -16.f }; std::vector expectedOutputValues { 25.f, 16.f }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Neg, inputShape, inputValues, inputShape, expectedOutputValues); } // // Explicit template specializations // template LayerTestResult, 2> Neg2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> Neg2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> Neg2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> Neg2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> Neg2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Neg3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Neg3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Neg3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Neg3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 3> Neg3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> NegZeroTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult, 2> NegNegativeTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);