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.
-
inline Dimension &operator*=(const Dimension &dim)#
Multiply-into operator for Dimension.
- Parameters:
dim – Right operand for multiplication.
- Returns:
A reference to
*this, after updating*thisto the value*this * dim.
Sets symbol of the Dimension.
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)#