Mojo struct
DType
Represents DType and provides methods for working with it.
Aliases
type = dtype
:invalid
: Represents an invalid or unknown data type.bool
: Represents a boolean data type.int8
: Represents a signed integer type whose bitwidth is 8.uint8
: Represents an unsigned integer type whose bitwidth is 8.int16
: Represents a signed integer type whose bitwidth is 16.uint16
: Represents an unsigned integer type whose bitwidth is 16.int32
: Represents a signed integer type whose bitwidth is 32.uint32
: Represents an unsigned integer type whose bitwidth is 32.int64
: Represents a signed integer type whose bitwidth is 64.uint64
: Represents an unsigned integer type whose bitwidth is 64.float8e5m2
: Represents a FP8E5M2 floating point format whose bitwidth is 8.float8e4m3
: Represents a FP8E4M3 floating point format whose bitwidth is 8.bfloat16
: Represents a brain floating point value whose bitwidth is 16.float16
: Represents an IEEE754-2008binary16
floating point value.float32
: Represents an IEEE754-2008binary32
floating point value.tensor_float32
: Represents a special floating point format supported by NVIDIA Tensor Cores, with the same range as float32 and reduced precision (>=10 bits). Note that this type is only available on NVIDIA GPUs.float64
: Represents an IEEE754-2008binary64
floating point value.index
: Represents an integral type whose bitwidth is the maximum integral value on the system.
Fields
- value (
dtype
): The underlying storage for the DType value.
Implemented traits
AnyType
,
CollectionElement
,
CollectionElementNew
,
Copyable
,
EqualityComparable
,
EqualityComparableCollectionElement
,
ExplicitlyCopyable
,
Hashable
,
KeyElement
,
Movable
,
Representable
,
Stringable
,
Writable
,
_HashableWithHasher
Methods
__init__
__init__(out self, *, other: Self)
Copy this DType.
Args:
- other (
Self
): The DType to copy.
__eq__
__eq__(self, rhs: Self) -> Bool
Compares one DType to another for equality.
Args:
- rhs (
Self
): The DType to compare against.
Returns:
True if the DTypes are the same and False otherwise.
__ne__
__ne__(self, rhs: Self) -> Bool
Compares one DType to another for inequality.
Args:
- rhs (
Self
): The DType to compare against.
Returns:
False if the DTypes are the same and True otherwise.
__is__
__is__(self, rhs: Self) -> Bool
Compares one DType to another for equality.
Args:
- rhs (
Self
): The DType to compare against.
Returns:
True if the DTypes are the same and False otherwise.
__isnot__
__isnot__(self, rhs: Self) -> Bool
Compares one DType to another for inequality.
Args:
- rhs (
Self
): The DType to compare against.
Returns:
True if the DTypes are the same and False otherwise.
__str__
__str__(self) -> String
Gets the name of the DType.
Returns:
The name of the dtype.
write_to
write_to[W: Writer](self, inout writer: W)
Formats this dtype to the provided Writer.
Parameters:
- W (
Writer
): A type conforming to the Writable trait.
Args:
- writer (
W
): The object to write to.
__repr__
__repr__(self) -> String
Gets the representation of the DType e.g. "DType.float32"
.
Returns:
The representation of the dtype.
get_value
get_value(self) -> dtype
Gets the associated internal kgen.dtype value.
Returns:
The kgen.dtype value.
__hash__
__hash__(self) -> UInt
Return a 64-bit hash for this DType
value.
Returns:
A 64-bit integer hash of this DType
value.
__hash__[H: _Hasher](self, inout hasher: H)
Updates hasher with this DType
value.
Parameters:
- H (
_Hasher
): The hasher type.
Args:
- hasher (
H
): The hasher instance.
is_unsigned
is_unsigned(self) -> Bool
Returns True if the type parameter is unsigned and False otherwise.
Returns:
Returns True if the input type parameter is unsigned.
is_signed
is_signed(self) -> Bool
Returns True if the type parameter is signed and False otherwise.
Returns:
Returns True if the input type parameter is signed.
is_integral
is_integral(self) -> Bool
Returns True if the type parameter is an integer and False otherwise.
Returns:
Returns True if the input type parameter is an integer.
is_floating_point
is_floating_point(self) -> Bool
Returns True if the type parameter is a floating-point and False otherwise.
Returns:
Returns True if the input type parameter is a floating-point.
is_float8
is_float8(self) -> Bool
Returns True if the type is a 8bit-precision floating point type, e.g. either float8e5m2 or float8e4m3.
Returns:
True if the type is a 8bit-precision float, false otherwise.
is_half_float
is_half_float(self) -> Bool
Returns True if the type is a half-precision floating point type, e.g. either fp16 or bf16.
Returns:
True if the type is a half-precision float, false otherwise..
is_numeric
is_numeric(self) -> Bool
Returns True if the type parameter is numeric (i.e. you can perform arithmetic operations on).
Returns:
Returns True if the input type parameter is either integral or floating-point.
sizeof
sizeof(self) -> Int
Returns the size in bytes of the current DType.
Returns:
Returns the size in bytes of the current DType.
bitwidth
bitwidth(self) -> Int
Returns the size in bits of the current DType.
Returns:
Returns the size in bits of the current DType.
dispatch_integral
dispatch_integral[: origin.set, //, func: fn[DType]() capturing -> None](self)
Dispatches an integral function corresponding to the current DType.
Constraints:
DType must be integral.
Parameters:
- func (
fn[DType]() capturing -> None
): A parametrized on dtype function to dispatch.
dispatch_floating
dispatch_floating[: origin.set, //, func: fn[DType]() capturing -> None](self)
Dispatches a floating-point function corresponding to the current DType.
Constraints:
DType must be floating-point or integral.
Parameters:
- func (
fn[DType]() capturing -> None
): A parametrized on dtype function to dispatch.
dispatch_arithmetic
dispatch_arithmetic[: origin.set, //, func: fn[DType]() capturing -> None](self)
Dispatches a function corresponding to the current DType.
Parameters:
- func (
fn[DType]() capturing -> None
): A parametrized on dtype function to dispatch.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!