Deprecate nGraph v0 ops and builders (#1856)
[platform/upstream/dldt.git] / ngraph / core / include / ngraph / op / not_equal.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 not-equal operation.
28             class NGRAPH_DEPRECATED(
29                 "This operation is deprecated and will be removed soon. "
30                 "Use v1::NotEqual instead of it.") NGRAPH_API NotEqual
31                 : public util::BinaryElementwiseComparison
32             {
33                 NGRAPH_SUPPRESS_DEPRECATED_START
34             public:
35                 static constexpr NodeTypeInfo type_info{"NotEqual", 0};
36                 const NodeTypeInfo& get_type_info() const override { return type_info; }
37                 /// \brief Constructs a not-equal operation.
38                 NotEqual()
39                     : util::BinaryElementwiseComparison(AutoBroadcastSpec::NONE)
40                 {
41                 }
42                 /// \brief Constructs a not-equal 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                 NotEqual(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
54                 bool evaluate(const HostTensorVector& outputs,
55                               const HostTensorVector& inputs) const override;
56                 NGRAPH_SUPPRESS_DEPRECATED_END
57             };
58         } // namespace v0
59
60         namespace v1
61         {
62             /// \brief Elementwise not-equal operation.
63             class NGRAPH_API NotEqual : public util::BinaryElementwiseComparison
64             {
65             public:
66                 NGRAPH_RTTI_DECLARATION;
67                 /// \brief Constructs a not-equal operation.
68                 NotEqual()
69                     : util::BinaryElementwiseComparison(AutoBroadcastSpec::NUMPY)
70                 {
71                 }
72                 /// \brief Constructs a not-equal operation.
73                 ///
74                 /// \param arg0 Node that produces the first input tensor.
75                 /// \param arg1 Node that produces the second input tensor.
76                 /// \param auto_broadcast Auto broadcast specification
77                 NotEqual(const Output<Node>& arg0,
78                          const Output<Node>& arg1,
79                          const AutoBroadcastSpec& auto_broadcast =
80                              AutoBroadcastSpec(AutoBroadcastType::NUMPY));
81
82                 virtual std::shared_ptr<Node>
83                     clone_with_new_inputs(const OutputVector& new_args) const override;
84
85                 bool evaluate(const HostTensorVector& outputs,
86                               const HostTensorVector& inputs) const override;
87             };
88         } // namespace v1
89
90         NGRAPH_SUPPRESS_DEPRECATED_START
91         using v0::NotEqual;
92         NGRAPH_SUPPRESS_DEPRECATED_END
93     }
94 }