# `ExTorch.DType`

A ``torch.dtype`` is an object that represents the data type of a ``torch.Tensor``.
ExTorch has twelve different data types:

# `alias_type`

```elixir
@type alias_type() ::
  :byte
  | :char
  | :short
  | :int
  | :long
  | :half
  | :float
  | :double
  | :chalf
  | :cfloat
  | :cdouble
  | :complex_float
  | :complex_double
```

Alias names to other integral/floating tensor types.

# `base_type`

```elixir
@type base_type() :: :bool | numeric_type() | complex_type()
```

Basic tensor types

# `complex_type`

```elixir
@type complex_type() :: :complex32 | :complex64 | :complex128
```

Complex number tensor types.

# `dtype`

```elixir
@type dtype() :: base_type() | complex_type() | quantized_type() | alias_type() | nil
```

A torch.dtype is an object that represents the data type of a torch.Tensor.

# `floating_type`

```elixir
@type floating_type() :: :float16 | :bfloat16 | :float32 | :float64
```

Floating point tensor types.

# `integral_type`

```elixir
@type integral_type() :: :uint8 | :int8 | :int16 | :int32 | :int64
```

Integral tensor types, unsigned and signed.

# `numeric_type`

```elixir
@type numeric_type() :: integral_type() | floating_type()
```

Numeric tensor types

# `quantized_type`

```elixir
@type quantized_type() :: :quint8 | :quint2x4 | :quint4x2 | :qint8 | :qint32
```

Quantized floating point tensor types.

# `is_dtype`
*macro* 

---

*Consult [api-reference.md](api-reference.md) for complete listing*
