Class ov::Dimension¶
-
class Dimension¶
Class representing a dimension, which may be dynamic (undetermined until runtime), in a shape or shape-like object.
Static dimensions may be implicitly converted from value_type. A dynamic dimension is constructed with Dimension() or Dimension::dynamic().
Public Functions
-
Dimension(value_type dimension)¶
Construct a static dimension.
- Parameters
dimension – Value of the dimension.
-
Dimension(value_type min_dimension, value_type max_dimension)¶
Construct a dynamic dimension with bounded range.
- Parameters
min_dimension – The lower inclusive limit for the dimension
max_dimension – The upper inclusive limit for the dimension
-
Dimension(const std::string &str)¶
Construct a dimension from string.
- Parameters
str – String to parse to dimension.
-
Dimension() = default¶
Construct a dynamic dimension with range [0, …].
-
inline bool is_static() const¶
Check whether this dimension is static.
- Returns
trueif the dimension is static, elsefalse.
-
inline bool is_dynamic() const¶
Check whether this dimension is dynamic.
- Returns
falseif the dimension is static, elsetrue.
-
value_type get_length() const¶
Convert this dimension to
value_type. This dimension must be static and non-negative.- Throws
std::invalid_argument – If this dimension is dynamic or negative.
-
bool same_scheme(const Dimension &dim) const¶
Check whether this dimension represents the same scheme as the argument (both dynamic, or equal).
- Parameters
dim – The other dimension to compare this dimension to.
- Returns
trueif this dimension anddimare both dynamic, or if they are both static and equal; otherwise,false.
-
bool compatible(const Dimension &d) const¶
Check whether this dimension is capable of being merged with the argument dimension.
Two dimensions are considered compatible if it is possible to merge them. (See Dimension::merge.)
- Parameters
d – The dimension to compare this dimension with.
- Returns
trueif this dimension is compatible withd, elsefalse.
-
bool relaxes(const Dimension &d) const¶
Check whether this dimension is a relaxation of the argument.
A dimension
d1relaxes (or is a relaxation of)d2ifd1andd2are static and equal, ord1is dynamic.d1.relaxes(d2)is equivalent tod2.refines(d1).- Parameters
d – The dimension to compare this dimension with.
- Returns
trueif this dimension relaxesd, elsefalse.
-
bool refines(const Dimension &d) const¶
Check whether this dimension is a refinement of the argument.
A dimension
d2refines (or is a refinement of)d1ifd1andd2are static and equal, ord2is dynamic.d1.refines(d2)is equivalent tod2.relaxes(d1).- Parameters
d – The dimension to compare this dimension with.
- Returns
trueif this dimension relaxesd, elsefalse.
-
Dimension operator+(const Dimension &dim) const¶
Addition operator for Dimension.
- Parameters
dim – Right operand for addition.
- Returns
Smallest interval dimension enclosing inputs
-
Dimension operator-(const Dimension &dim) const¶
Subtraction operator for Dimension.
- Parameters
dim – Right operand for subtraction.
- Returns
Smallest interval dimension enclosing inputs
-
Dimension operator/(const value_type divisor) const¶
Division operator for Dimension divided by a value_type parameter.
- Parameters
divisor – Right operand for division.
- Returns
Smallest interval dimension enclosing inputs
-
inline Dimension &operator/=(const value_type divisor)¶
Divided-into operator for Dimension.
- Parameters
divisor – Right operand for multiplication.
- Returns
A reference to
*this, after updating*thisto the value*this * dim.
-
Dimension operator*(const Dimension &dim) const¶
Multiplication operator for Dimension.
- Parameters
dim – Right operand for multiplicaiton.
- Returns
Smallest interval containing all “produces” which are 0 if either of
thisordimhas length0, else unbounded if either is unbounded, else product of lengths.
-
inline Dimension &operator+=(const Dimension &dim)¶
Add-into operator for Dimension.
- Parameters
dim – Right operand for addition.
- Returns
A reference to
*this, after updating*thisto the value*this + dim.
Public Static Functions
-
static bool merge(Dimension &dst, const Dimension &d1, const Dimension &d2)¶
Try to merge two Dimension objects together.
If
d1is dynamic, writesd2todstand returnstrue.If
d2is dynamic, writesd1todstand returnstrue.If
d1andd2are static and equal, writesd1todstand returnstrue.If
d1andd2are both static and unequal, leavesdstunchanged and returnsfalse.
- Parameters
dst – [out] Reference to write the merged Dimension into.
d1 – First dimension to merge.
d2 – Second dimension to merge.
- Returns
trueif merging succeeds, elsefalse.
-
Dimension(value_type dimension)¶