19 #include "ngraph/node.hpp"
20 #include "ngraph/pattern/op/pattern.hpp"
40 static constexpr NodeTypeInfo type_info{
"patternLabel", 0};
56 const PartialShape& s,
57 const ValuePredicate pred,
58 const OutputVector& wrapped_values)
59 :
Pattern(OutputVector{wrap_values(wrapped_values)}, pred)
61 set_output_type(0, type, s);
66 : Label(type, s, [](const Output<Node>&) {
return true; }, OutputVector())
70 Label(
const element::Type& type,
const PartialShape& s, ValuePredicate pred)
71 : Label(type, s, pred, OutputVector{})
75 Label(
const element::Type& type,
const PartialShape& s, NodePredicate pred)
76 : Label(type, s, as_value_predicate(pred), OutputVector{})
80 Label(
const element::Type& type,
81 const PartialShape& s,
82 const NodePredicate pred,
83 const NodeVector& wrapped_values)
84 : Label(type, s, as_value_predicate(pred), as_output_vector(wrapped_values))
101 const ValuePredicate pred,
102 const OutputVector& wrapped_values)
104 value.get_element_type(), value.get_partial_shape(), pred, wrapped_values)
107 Label(
const Output<Node>& value,
const ValuePredicate pred)
109 value.get_element_type(), value.get_partial_shape(), pred, OutputVector{})
113 Label(
const Output<Node>& value,
const NodePredicate pred)
114 : Label(value.get_element_type(),
115 value.get_partial_shape(),
116 as_value_predicate(pred),
120 Label(
const Output<Node>& value)
121 : Label(value.get_element_type(),
122 value.get_partial_shape(),
123 [](const Output<Node>&) {
return true; },
127 Label(
const Output<Node>& node,
128 const NodePredicate pred,
129 const NodeVector& wrapped_values)
130 : Label(node.get_element_type(),
131 node.get_partial_shape(),
132 as_value_predicate(pred),
133 as_output_vector(wrapped_values))
137 bool match_value(Matcher* matcher,
138 const Output<Node>& pattern_value,
139 const Output<Node>& graph_value)
override;
142 static Output<Node> wrap_values(
const OutputVector& wrapped_values);
147 std::shared_ptr<Node> any_input();
150 std::shared_ptr<Node> any_input(
const pattern::op::ValuePredicate& pred);