blob: 5ff9a9a1c5f1ea3b4c7e42f4b338541932706d07 [file] [log] [blame]
surmeh013537c2c2018-05-18 16:31:43 +01001//
Finn Williams87d0bda2020-07-03 10:12:03 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
surmeh013537c2c2018-05-18 16:31:43 +01004//
5#include "FloorLayer.hpp"
6
7#include "LayerCloneBase.hpp"
8
9#include <armnn/TypesUtils.hpp>
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +000010#include <backendsCommon/WorkloadData.hpp>
11#include <backendsCommon/WorkloadFactory.hpp>
surmeh013537c2c2018-05-18 16:31:43 +010012
13namespace armnn
14{
15
16FloorLayer::FloorLayer(const char* name)
17 : Layer(1, 1, LayerType::Floor, name)
18{
19}
20
Derek Lamberti94a88d22019-12-10 21:12:59 +000021std::unique_ptr<IWorkload> FloorLayer::CreateWorkload(const IWorkloadFactory& factory) const
surmeh013537c2c2018-05-18 16:31:43 +010022{
23 FloorQueueDescriptor descriptor;
Derek Lamberti94a88d22019-12-10 21:12:59 +000024 return factory.CreateFloor(descriptor, PrepInfoAndDesc(descriptor));
surmeh013537c2c2018-05-18 16:31:43 +010025}
26
27FloorLayer* FloorLayer::Clone(Graph& graph) const
28{
29 return CloneBase<FloorLayer>(graph, GetName());
30}
31
Finn Williamsf24effa2020-07-03 10:12:03 +010032void FloorLayer::ValidateTensorShapesFromInputs()
surmeh013537c2c2018-05-18 16:31:43 +010033{
telsoa01c577f2c2018-08-31 09:22:23 +010034 VerifyLayerConnections(1, CHECK_LOCATION());
surmeh013537c2c2018-05-18 16:31:43 +010035
Finn Williams87d0bda2020-07-03 10:12:03 +010036 const TensorShape& outputShape = GetOutputSlot(0).GetTensorInfo().GetShape();
telsoa01c577f2c2018-08-31 09:22:23 +010037
Finn Williamsf24effa2020-07-03 10:12:03 +010038 VerifyShapeInferenceType(outputShape, m_ShapeInferenceMethod);
Finn Williams87d0bda2020-07-03 10:12:03 +010039
40 auto inferredShapes = InferOutputShapes({ GetInputSlot(0).GetConnection()->GetTensorInfo().GetShape() });
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010041 ARMNN_ASSERT(inferredShapes.size() == 1);
telsoa01c577f2c2018-08-31 09:22:23 +010042
Finn Williamsf24effa2020-07-03 10:12:03 +010043 ValidateAndCopyShape(outputShape, inferredShapes[0], m_ShapeInferenceMethod, "FloorLayer");
surmeh013537c2c2018-05-18 16:31:43 +010044}
45
jimfly01e9e7bfd2019-01-24 22:29:33 +000046void FloorLayer::Accept(ILayerVisitor& visitor) const
47{
48 visitor.VisitFloorLayer(this, GetName());
49}
50
surmeh013537c2c2018-05-18 16:31:43 +010051} // namespace armnn