11 #include "ngraph/deprecated.hpp"
12 #include "ngraph/interval.hpp"
13 #include "ngraph/ngraph_visibility.hpp"
25 using value_type = int64_t;
34 Dimension(value_type min_dimension, value_type max_dimension);
39 bool operator==(
const Dimension& dimension)
const
41 return m_dimension == dimension.m_dimension;
43 bool operator!=(
const Dimension& dimension)
const
45 return m_dimension != dimension.m_dimension;
49 bool is_static()
const {
return m_dimension.size() == 1; }
52 bool is_dynamic()
const {
return m_dimension.size() != 1; }
58 value_type get_min_length()
const;
59 value_type get_max_length()
const;
63 Interval& get_interval() {
return m_dimension; }
150 : m_dimension(interval)
165 std::ostream& operator<<(std::ostream& str,
const Dimension& dimension);
Class representing a dimension, which may be dynamic (undetermined until runtime),...
Definition: dimension.hpp:23
Dimension & operator*=(const Dimension &dim)
Multiply-into operator for Dimension.
Definition: dimension.hpp:142
Dimension & operator+=(const Dimension &dim)
Add-into operator for Dimension.
Definition: dimension.hpp:138
Dimension(value_type dimension)
Construct a static dimension.
const Interval & get_interval() const
Return the interval of valid lengths.
Definition: dimension.hpp:62
static Dimension dynamic()
Create a dynamic dimension.
Definition: dimension.hpp:118
Dimension operator*(const Dimension &dim) const
Multiplication operator for Dimension.
static bool merge(Dimension &dst, const Dimension d1, const Dimension d2)
Try to merge two Dimension objects together.
Dimension()=default
Construct a dynamic dimension with range [0, ...].
Dimension operator-(const Dimension &dim) const
Subtraction operator for Dimension.
bool refines(const Dimension &d) const
Check whether this dimension is a refinement of the argument.
static bool broadcast_merge(Dimension &dst, const Dimension d1, const Dimension d2)
Try to merge two Dimension objects together with implicit broadcasting of unit-sized dimension to non...
Dimension & operator&=(const Dimension &dim)
Intersection of dimensions.
bool same_scheme(const Dimension &dim) const
Check whether this dimension represents the same scheme as the argument (both dynamic,...
bool is_dynamic() const
Check whether this dimension is dynamic.
Definition: dimension.hpp:52
Dimension operator&(const Dimension &dim) const
Intersection of dimensions.
Dimension operator+(const Dimension &dim) const
Addition operator for Dimension.
value_type get_length() const
Convert this dimension to value_type. This dimension must be static and non-negative.
bool is_static() const
Check whether this dimension is static.
Definition: dimension.hpp:49
Dimension(value_type min_dimension, value_type max_dimension)
Construct a dynamic dimension with bounded range.
bool compatible(const Dimension &d) const
Check whether this dimension is capable of being merged with the argument dimension.
bool relaxes(const Dimension &d) const
Check whether this dimension is a relaxation of the argument.
Interval arithmetic.
Definition: interval.hpp:25
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:16