---
title: "ClikaRT::dtype::uint4_t"
sidebar_label: "uint4_t"
description: "Unsigned 4-bit integer, range [0, 15]. Low nibble of a byte."
---

<!-- Generated by tools/doxygen2mdx from Doxygen XML. Do not edit. -->

<span class="api-kind api-kind--struct">struct</span>

**Header:** `ClikaRT/compute/scalar_types.h`

Unsigned 4-bit integer, range \[0, 15\]. Low nibble of a byte.

## Static member functions

### from\_bits() {#from_bits}

<div class="api-signature">

`static` `constexpr` [`uint4_t`](./uint4_t.md) **`from_bits`**(`std::uint8_t` `b`) `noexcept`

</div>

Reinterpret the low 4 bits of `b` without conversion.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 422

</div>

## Member functions

### uint4\_t() {#uint4_t}

<div class="api-signature">

`constexpr` `constexpr` **`uint4_t`**() `noexcept=default`

</div>

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 419

</div>

### uint4\_t(uint8\_t) {#uint4_t-2}

<div class="api-signature">

`constexpr` `explicit` `constexpr` **`uint4_t`**(`std::uint8_t` `v`) `noexcept`

</div>

Wrap an 8-bit value: keeps the low 4 bits (wraps; no saturation or range check).

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 420

</div>

### operator std::uint8\_t() {#operator-std-uint8-t}

<div class="api-signature">

`constexpr` `constexpr` **`operator std::uint8_t`**() `const noexcept`

</div>

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 421

</div>

## Data members

### bits {#bits}

<div class="api-signature">

`std::uint8_t` **`bits`** `= 0`

</div>

Raw encoding in the low 4 bits (the storage/ABI form).

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 418

</div>

## Friends

### operator== {#operator-eq}

<div class="api-signature">

`friend` `bool` **`operator==`**([`uint4_t`](./uint4_t.md) `a`, [`uint4_t`](./uint4_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 423

</div>

### operator\!= {#operator-ne}

<div class="api-signature">

`friend` `bool` **`operator!=`**([`uint4_t`](./uint4_t.md) `a`, [`uint4_t`](./uint4_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 424

</div>

### operator\< {#operator-lt}

<div class="api-signature">

`friend` `bool` **`operator<`**([`uint4_t`](./uint4_t.md) `a`, [`uint4_t`](./uint4_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 425

</div>

### operator\<= {#operator-le}

<div class="api-signature">

`friend` `bool` **`operator<=`**([`uint4_t`](./uint4_t.md) `a`, [`uint4_t`](./uint4_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 426

</div>

### operator\> {#operator-gt}

<div class="api-signature">

`friend` `bool` **`operator>`**([`uint4_t`](./uint4_t.md) `a`, [`uint4_t`](./uint4_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 427

</div>

### operator\>= {#operator-ge}

<div class="api-signature">

`friend` `bool` **`operator>=`**([`uint4_t`](./uint4_t.md) `a`, [`uint4_t`](./uint4_t.md) `b`) `noexcept`

</div>

Compares `a` and `b` by widened integer value.

<div class="api-declared">

Declared in `ClikaRT/compute/scalar_types.h`, line 428

</div>
