# `nupp.math.f32`
IEEE-754 binary32 arithmetic with explicit rounding.
## Functions
### `add` _function_
```nupp
local add: nosuspend function(a: float, b: float): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `a` | `float` | |
| `b` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `div` _function_
```nupp
local div: nosuspend function(a: float, b: float): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `a` | `float` | |
| `b` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `exp` _function_
```nupp
local exp: nosuspend function(value: float): float
```
A deterministic polynomial exponential, clamped to `[-104, 88]`.
The specified binary32 operation sequence is shared by CPU and GPU AOT.
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `value` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `fma` _function_
```nupp
local fma: nosuspend function(a: float, b: float, c: float): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `a` | `float` | |
| `b` | `float` | |
| `c` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `fromBF16Bits` _function_
```nupp
local fromBF16Bits: nosuspend function(bits: uint32): float
```
Widens the low sixteen IEEE bfloat16 storage bits to binary32.
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `bits` | `uint32` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `fromBits` _function_
```nupp
local fromBits: nosuspend function(bits: uint32): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `bits` | `uint32` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `fromF16Bits` _function_
```nupp
local fromF16Bits: nosuspend function(bits: uint32): float
```
Widens IEEE binary16 storage bits to binary32, canonicalizing NaN.
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `bits` | `uint32` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `max` _function_
```nupp
local max: nosuspend function(a: float, b: float): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `a` | `float` | |
| `b` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `min` _function_
```nupp
local min: nosuspend function(a: float, b: float): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `a` | `float` | |
| `b` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `mul` _function_
```nupp
local mul: nosuspend function(a: float, b: float): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `a` | `float` | |
| `b` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `narrow` _function_
```nupp
local narrow: nosuspend function(value: number): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `value` | `number` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `round` _function_
```nupp
local round: nosuspend function(value: number): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `value` | `number` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `sqrt` _function_
```nupp
local sqrt: nosuspend function(value: float): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `value` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `sub` _function_
```nupp
local sub: nosuspend function(a: float, b: float): float
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `a` | `float` | |
| `b` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `float` | |
### `toBF16Bits` _function_
```nupp
local toBF16Bits: nosuspend function(value: float): uint32
```
Rounds binary32 to IEEE bfloat16 storage bits, ties to even.
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `value` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `uint32` | |
### `toBits` _function_
```nupp
local toBits: nosuspend function(value: float): uint32
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `value` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `uint32` | |
### `toF16Bits` _function_
```nupp
local toF16Bits: nosuspend function(value: float): uint32
```
Rounds binary32 to IEEE binary16 storage bits, ties to even.
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `value` | `float` | |
#### Returns
| Type | Description |
| --- | --- |
| `uint32` | |