// // Copyright © 2021 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #include "SinTestImpl.hpp" #include "ElementwiseUnaryTestImpl.hpp" template LayerTestResult Sin2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory) { const unsigned int inputShape[] = { 2, 2 }; std::vector inputValues { 3.0f, 2.0f, 1.0f, 1.1f }; std::vector expectedOutputValues { 0.14112000806f, 0.90929742682f, 0.8414709848f, 0.89120736006f }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Sin, inputShape, inputValues, inputShape, expectedOutputValues, tensorHandleFactory); } template LayerTestResult Sin3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory) { 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 { -0.95892427466f, -0.7568024953f, 0.14112000806f, 0.90929742682f, 0.8414709848f, 0.89120736006f }; return ElementwiseUnaryTestHelper<3, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Sin, inputShape, inputValues, inputShape, expectedOutputValues, tensorHandleFactory); } template LayerTestResult SinZeroTest( 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 { 0.f, 0.f }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Sin, inputShape, inputValues, inputShape, expectedOutputValues, tensorHandleFactory); } template LayerTestResult SinNegativeTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory) { const unsigned int inputShape[] = { 1, 2 }; std::vector inputValues { -5.9f, -5.8f }; std::vector expectedOutputValues { 0.37387666483f, 0.46460217941f, }; return ElementwiseUnaryTestHelper<2, ArmnnType>( workloadFactory, memoryManager, armnn::UnaryOperation::Sin, inputShape, inputValues, inputShape, expectedOutputValues, tensorHandleFactory); } // // Sinlicit template specializations // template LayerTestResult, 2> Sin2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> Sin2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> Sin2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> Sin2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> Sin2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Sin3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Sin3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Sin3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Sin3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 3> Sin3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> SinZeroTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory); template LayerTestResult, 2> SinNegativeTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ITensorHandleFactory& tensorHandleFactory);