struct
Dim
A static or dynamic dimension modeled with an optional integer.
This class is meant to represent an optional static dimension. When a value is present, the dimension has that static value. When a value is not present, the dimension is dynamic.
Fields
- value (
OptionalReg[Int]
): An optional value for the dimension.
Implemented traits
AnyType
,
Boolable
,
Copyable
,
Intable
,
Movable
,
Stringable
Methods
__init__
__init__[type: Intable](value: type) -> Self
Creates a statically-known dimension.
Parameters:
- type (
Intable
): The Intable type.
Args:
- value (
type
): The static dimension value.
Returns:
A dimension with a static value.
__init__(value: index) -> Self
Creates a statically-known dimension.
Args:
- value (
index
): The static dimension value.
Returns:
A dimension with a static value.
__init__() -> Self
Creates a dynamic dimension.
Returns:
A dimension value with no static value.
__bool__
__bool__(self: Self) -> Bool
Returns True if the dimension has a static value.
Returns:
Whether the dimension has a static value.
__eq__
__eq__(self: Self, rhs: Self) -> Bool
Compares two dimensions for equality.
Args:
- rhs (
Self
): The other dimension.
Returns:
True if the dimensions are the same.
__ne__
__ne__(self: Self, rhs: Self) -> Bool
Compare two dimensions for inequality.
Args:
- rhs (
Self
): The dimension to compare.
Returns:
True if they are not equal.
__mul__
__mul__(self: Self, rhs: Self) -> Self
Multiplies two dimensions.
If either are unknown, the result is unknown as well.
Args:
- rhs (
Self
): The other dimension.
Returns:
The product of the two dimensions.
__floordiv__
__floordiv__(self: Self, rhs: Self) -> Self
Divide two dimensions and round towards negative infinite.
If either are unknown, the result is unknown as well.
Args:
- rhs (
Self
): The other dimension.
Returns:
The floor division of the two dimensions.
has_value
has_value(self: Self) -> Bool
Returns True if the dimension has a static value.
Returns:
Whether the dimension has a static value.
is_dynamic
is_dynamic(self: Self) -> Bool
Returns True if the dimension has a dynamic value.
Returns:
Whether the dimension is dynamic.
get
get(self: Self) -> Int
Gets the static dimension value.
Returns:
The static dimension value.
is_multiple
is_multiple[alignment: Int](self: Self) -> Bool
Checks if the dimension is aligned.
Parameters:
- alignment (
Int
): The alignment requirement.
Returns:
Whether the dimension is aligned.
__int__
__int__(self: Self) -> Int
__str__
__str__(self: Self) -> String
Converts the Dim to a String. If the value is unknown, then the string "?" is returned.
Returns:
The string representation of the type.