Skip to main content
Log in

Mojo struct

DType

@register_passable(trivial) 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 from the OFP8 standard.
  • float8e5m2fnuz: Represents a FP8E5M2FNUZ floating point format.
  • float8e4m3: Represents a FP8E4M3 floating point format from the OFP8 standard.
  • float8e4m3fnuz: Represents a FP8E4M3FNUZ floating point format.
  • bfloat16: Represents a brain floating point value whose bitwidth is 16.
  • float16: Represents an IEEE754-2008 binary16 floating point value.
  • float32: Represents an IEEE754-2008 binary32 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-2008 binary64 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, UnknownDestructibility, Writable, _HashableWithHasher

Methods

__init__

__init__(out self, *, other: Self)

Copy this DType.

Args:

  • other (Self): The DType to copy.

__init__(out self, value: dtype)

Construct a DType from MLIR dtype.

Args:

  • value (dtype): The MLIR dtype.

__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, mut 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, mut 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. float8e5m2, float8e5m2fnuz, float8e4m3 and float8e4m3fnuz.

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.