blob: 616c11855265ae60d3b388c00da4e74e89d10f72 [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>
Colm Donelan0c479742021-12-10 12:43:54 +000010#include <armnn/backends/WorkloadData.hpp>
11#include <armnn/backends/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;
Keith Davisdf04d232020-10-23 17:20:05 +010024 SetAdditionalInfo(descriptor);
25
Teresa Charlin611c7fb2022-01-07 09:47:29 +000026 return factory.CreateWorkload(LayerType::Floor, descriptor, PrepInfoAndDesc(descriptor));
surmeh013537c2c2018-05-18 16:31:43 +010027}
28
29FloorLayer* FloorLayer::Clone(Graph& graph) const
30{
31 return CloneBase<FloorLayer>(graph, GetName());
32}
33
Finn Williamsf24effa2020-07-03 10:12:03 +010034void FloorLayer::ValidateTensorShapesFromInputs()
surmeh013537c2c2018-05-18 16:31:43 +010035{
telsoa01c577f2c2018-08-31 09:22:23 +010036 VerifyLayerConnections(1, CHECK_LOCATION());
surmeh013537c2c2018-05-18 16:31:43 +010037
Finn Williams87d0bda2020-07-03 10:12:03 +010038 const TensorShape& outputShape = GetOutputSlot(0).GetTensorInfo().GetShape();
telsoa01c577f2c2018-08-31 09:22:23 +010039
Finn Williamsf24effa2020-07-03 10:12:03 +010040 VerifyShapeInferenceType(outputShape, m_ShapeInferenceMethod);
Finn Williams87d0bda2020-07-03 10:12:03 +010041
42 auto inferredShapes = InferOutputShapes({ GetInputSlot(0).GetConnection()->GetTensorInfo().GetShape() });
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010043 ARMNN_ASSERT(inferredShapes.size() == 1);
telsoa01c577f2c2018-08-31 09:22:23 +010044
Finn Williamsf24effa2020-07-03 10:12:03 +010045 ValidateAndCopyShape(outputShape, inferredShapes[0], m_ShapeInferenceMethod, "FloorLayer");
surmeh013537c2c2018-05-18 16:31:43 +010046}
47
Jan Eilers1b2654f2021-09-24 15:45:46 +010048ARMNN_NO_DEPRECATE_WARN_BEGIN
jimfly01e9e7bfd2019-01-24 22:29:33 +000049void FloorLayer::Accept(ILayerVisitor& visitor) const
50{
51 visitor.VisitFloorLayer(this, GetName());
52}
Jan Eilers1b2654f2021-09-24 15:45:46 +010053ARMNN_NO_DEPRECATE_WARN_END
jimfly01e9e7bfd2019-01-24 22:29:33 +000054
surmeh013537c2c2018-05-18 16:31:43 +010055} // namespace armnn