---
title: "ClikaRT::dtype::bfloat16_t"
sidebar_label: "bfloat16_t"
description: "Truncated fp32 (brain float): 1 sign + 8 exponent + 7 mantissa, bias 127; the top 16 bits of an fp32. Range ±3.39e38 (= fp32), eps 2^-7. 16-bit storage."
---

<!-- 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`

Truncated fp32 (brain float): 1 sign + 8 exponent + 7 mantissa, bias 127; the top 16 bits of an fp32. Range ±3.39e38 (= fp32), eps 2^-7. 16-bit storage. Conversion from fp32 is round-to-nearest-even; [`from_truncated`](./bfloat16_t.md#from_truncated) drops the low 16 bits without rounding.

## Static member functions

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

<div class="api-signature">

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

</div>

Reinterpret a raw 16-bit encoding without converting.

<div class="api-declared">

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

</div>

### from\_truncated() {#from_truncated}

<div class="api-signature">

`static` [`bfloat16_t`](./bfloat16_t.md) **`from_truncated`**(`float` `f`) `noexcept`

</div>

Convert from fp32 by truncation (drop the low 16 bits, no rounding).

<div class="api-declared">

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

</div>

## Member functions

### bfloat16\_t() {#bfloat16_t}

<div class="api-signature">

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

</div>

<div class="api-declared">

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

</div>

### bfloat16\_t(float) {#bfloat16_t-2}

<div class="api-signature">

`explicit` **`bfloat16_t`**(`float` `f`) `noexcept`

</div>

Convert from fp32 (round-to-nearest-even).

<div class="api-declared">

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

</div>

### operator float() {#operator-float}

<div class="api-signature">

**`operator float`**() `const noexcept`

</div>

Convert to fp32 (lossless).

<div class="api-declared">

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

</div>

## Data members

### bits {#bits}

<div class="api-signature">

`std::uint16_t` **`bits`** `= 0`

</div>

Raw 16-bit encoding (the storage/ABI form).

<div class="api-declared">

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

</div>

## Friends

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

<div class="api-signature">

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

</div>

Compares `a` and `b` by dequantized value (IEEE rules; a NaN operand compares false).

<div class="api-declared">

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

</div>

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

<div class="api-signature">

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

</div>

Compares `a` and `b` by dequantized value (IEEE rules; a NaN operand compares false).

<div class="api-declared">

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

</div>

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

<div class="api-signature">

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

</div>

Compares `a` and `b` by dequantized value (IEEE rules; a NaN operand compares false).

<div class="api-declared">

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

</div>

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

<div class="api-signature">

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

</div>

Compares `a` and `b` by dequantized value (IEEE rules; a NaN operand compares false).

<div class="api-declared">

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

</div>

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

<div class="api-signature">

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

</div>

Compares `a` and `b` by dequantized value (IEEE rules; a NaN operand compares false).

<div class="api-declared">

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

</div>

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

<div class="api-signature">

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

</div>

Compares `a` and `b` by dequantized value (IEEE rules; a NaN operand compares false).

<div class="api-declared">

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

</div>
