Deprecate nGraph v0 ops and builders (#1856)
[platform/upstream/dldt.git] / ngraph / core / include / ngraph / op / less.hpp
1 //*****************************************************************************
2 // Copyright 2017-2020 Intel Corporation
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //*****************************************************************************
16
17 #pragma once
18
19 #include "ngraph/op/util/binary_elementwise_comparison.hpp"
20
21 namespace ngraph
22 {
23     namespace op
24     {
25         namespace v0
26         {
27             /// \brief Elementwise less-than operation.
28             class NGRAPH_DEPRECATED(
29                 "This operation is deprecated and will be removed soon. "
30                 "Use v1::Less instead of it.") NGRAPH_API Less
31                 : public util::BinaryElementwiseComparison
32             {
33                 NGRAPH_SUPPRESS_DEPRECATED_START
34             public:
35                 static constexpr NodeTypeInfo type_info{"Less", 0};
36                 const NodeTypeInfo& get_type_info() const override { return type_info; }
37                 /// \brief Constructs a less-than operation.
38                 Less()
39                     : util::BinaryElementwiseComparison(AutoBroadcastSpec::NONE)
40                 {
41                 }
42                 /// \brief Constructs a less-than operation.
43                 ///
44                 /// \param arg0 Node that produces the first input tensor.
45                 /// \param arg1 Node that produces the second input tensor.
46                 /// \param auto_broadcast Auto broadcast specification
47                 Less(const Output<Node>& arg0,
48                      const Output<Node>& arg1,
49                      const AutoBroadcastSpec& auto_broadcast = AutoBroadcastSpec());
50
51                 virtual std::shared_ptr<Node>
52                     clone_with_new_inputs(const OutputVector& new_args) const override;
53                 bool evaluate(const HostTensorVector& outputs,
54                               const HostTensorVector& inputs) const override;
55                 NGRAPH_SUPPRESS_DEPRECATED_END
56             };
57         } // namespace v0
58
59         namespace v1
60         {
61             /// \brief Elementwise less-than operation.
62             class NGRAPH_API Less : public util::BinaryElementwiseComparison
63             {
64             public:
65                 NGRAPH_RTTI_DECLARATION;
66                 /// \brief Constructs a less-than operation.
67                 Less()
68                     : util::BinaryElementwiseComparison(AutoBroadcastSpec::NUMPY)
69                 {
70                 }
71                 /// \brief Constructs a less-than operation.
72                 ///
73                 /// \param arg0 Node that produces the first input tensor.
74                 /// \param arg1 Node that produces the second input tensor.
75                 /// \param auto_broadcast Auto broadcast specification
76                 Less(const Output<Node>& arg0,
77                      const Output<Node>& arg1,
78                      const AutoBroadcastSpec& auto_broadcast =
79                          AutoBroadcastSpec(AutoBroadcastType::NUMPY));
80
81                 virtual std::shared_ptr<Node>
82                     clone_with_new_inputs(const OutputVector& new_args) const override;
83                 bool evaluate(const HostTensorVector& outputs,
84                               const HostTensorVector& inputs) const override;
85             };
86         } // namespace v1
87
88         NGRAPH_SUPPRESS_DEPRECATED_START
89         using v0::Less;
90         NGRAPH_SUPPRESS_DEPRECATED_END
91     }
92 }