Skip to content

Commit

Permalink
Revise floor (openvinotoolkit#5618)
Browse files Browse the repository at this point in the history
* create type_prop tests

* add visitors test

* fix bug in visitor test

* add RTTI macro

* fix bug in visitors test

* add newline

* update spec

* update spec

* update RTTI definition

* move RTTI definitioion to the top of he file

* Remove broadcast from attribute tests.

* Add Floor-1 to summarize.py report.

Co-authored-by: jdanieck <[email protected]>
  • Loading branch information
2 people authored and rnugmanx committed Aug 26, 2021
1 parent b16c27d commit e9612a6
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 14 deletions.
20 changes: 10 additions & 10 deletions docs/ops/arithmetic/Floor_1.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,31 @@

**Versioned name**: *Floor-1*

**Category**: Arithmetic unary operation
**Category**: Arithmetic unary operation

**Short description**: *Floor* performs element-wise floor operation with given tensor.

**Attributes**:
**Detailed description**: For each element from the input tensor calculates corresponding
element in the output tensor with the following formula:

No attributes available.
\f[
a_{i} = floor(a_{i})
\f]

**Attributes**: *Floor* operation has no attributes.

**Inputs**

* **1**: An tensor of type T. **Required.**
* **1**: A tensor of type *T* and arbitrary shape. **Required.**

**Outputs**

* **1**: The result of element-wise floor operation. A tensor of type T.
* **1**: The result of element-wise floor operation. A tensor of type *T*.

**Types**

* *T*: any numeric type.

*Floor* does the following with the input tensor *a*:

\f[
a_{i} = floor(a_{i})
\f]

**Examples**

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
'ExperimentalDetectronPriorGridGenerator-6',
'ExperimentalDetectronROIFeatureExtractor-6',
'ExperimentalDetectronTopKROIs-6',
'Floor-1'
'FloorMod-1'
'GRUSequence-5',
'Gather-1',
Expand Down
3 changes: 1 addition & 2 deletions ngraph/core/include/ngraph/op/floor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ namespace ngraph
class NGRAPH_API Floor : public util::UnaryElementwiseArithmetic
{
public:
static constexpr NodeTypeInfo type_info{"Floor", 0};
const NodeTypeInfo& get_type_info() const override { return type_info; }
NGRAPH_RTTI_DECLARATION;
/// \brief Constructs a floor operation.
Floor() = default;
/// \brief Constructs a floor operation.
Expand Down
2 changes: 1 addition & 1 deletion ngraph/core/src/op/floor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
using namespace std;
using namespace ngraph;

constexpr NodeTypeInfo op::Floor::type_info;
NGRAPH_RTTI_DEFINITION(op::v0::Floor, "Floor", 0, util::UnaryElementwiseArithmetic);

op::Floor::Floor(const Output<Node>& arg)
: UnaryElementwiseArithmetic(arg)
Expand Down
1 change: 1 addition & 0 deletions ngraph/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ set(SRC
visitors/op/elu.cpp
visitors/op/extractimagepatches.cpp
visitors/op/fake_quantize.cpp
visitors/op/floor.cpp
visitors/op/gather.cpp
visitors/op/gelu.cpp
visitors/op/grn.cpp
Expand Down
2 changes: 1 addition & 1 deletion ngraph/test/type_prop/unary_ops.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,6 @@ REGISTER_TYPED_TEST_CASE_P(UnaryOperator,
dynamic_rank_input_shape_3D,
dynamic_rank_input_shape_full);

using Types = ::testing::Types<op::Acos, op::Asin, op::Abs, op::Sqrt, op::Sin, op::Exp>;
using Types = ::testing::Types<op::Acos, op::Asin, op::Abs, op::Sqrt, op::Sin, op::Exp, op::Floor>;

INSTANTIATE_TYPED_TEST_CASE_P(type_prop, UnaryOperator, Types);
26 changes: 26 additions & 0 deletions ngraph/test/visitors/op/floor.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Copyright (C) 2018-2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
//

#include "gtest/gtest.h"

#include "ngraph/ngraph.hpp"
#include "ngraph/op/util/attr_types.hpp"
#include "ngraph/opsets/opset1.hpp"
#include "util/visitor.hpp"

using namespace std;
using namespace ngraph;
using ngraph::test::NodeBuilder;

TEST(attributes, floor_op)
{
NodeBuilder::get_ops().register_factory<opset1::Floor>();
const auto A = make_shared<op::Parameter>(element::f32, Shape{5, 2});

const auto floor = make_shared<opset1::Floor>(A);
NodeBuilder builder(floor);

const auto expected_attr_count = 0;
EXPECT_EQ(builder.get_value_map_size(), expected_attr_count);
}

0 comments on commit e9612a6

Please sign in to comment.