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