23 #include "ngraph/deprecated.hpp"
24 #include "ngraph/interval.hpp"
25 #include "ngraph/ngraph_visibility.hpp"
37 using value_type = int64_t;
46 Dimension(value_type min_dimension, value_type max_dimension);
51 bool operator==(
const Dimension& dimension)
const
53 return m_dimension == dimension.m_dimension;
55 bool operator!=(
const Dimension& dimension)
const
57 return m_dimension != dimension.m_dimension;
61 bool is_static()
const {
return m_dimension.size() == 1; }
64 bool is_dynamic()
const {
return m_dimension.size() != 1; }
70 value_type get_min_length()
const;
71 value_type get_max_length()
const;
75 Interval& get_interval() {
return m_dimension; }
162 : m_dimension(interval)
177 std::ostream& operator<<(std::ostream& str,
const Dimension& dimension);
Class representing a dimension, which may be dynamic (undetermined until runtime),...
Definition: dimension.hpp:35
Dimension & operator*=(const Dimension &dim)
Multiply-into operator for Dimension.
Definition: dimension.hpp:154
Dimension & operator+=(const Dimension &dim)
Add-into operator for Dimension.
Definition: dimension.hpp:150
Dimension(value_type dimension)
Construct a static dimension.
const Interval & get_interval() const
Return the interval of valid lengths.
Definition: dimension.hpp:74
static Dimension dynamic()
Create a dynamic dimension.
Definition: dimension.hpp:130
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:64
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:61
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:37
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:28