# Math

### Functions <a href="#functions" id="functions"></a>

#### min <a href="#min" id="min"></a>

```solidity
function min(uint256 x, uint256 y) internal pure returns (uint256 z);
```

#### min128 <a href="#min128" id="min128"></a>

```solidity
function min128(uint128 x, uint128 y) internal pure returns (uint128 z);
```

#### min <a href="#min-1" id="min-1"></a>

```solidity
function min(int256 x, int256 y) internal pure returns (int256 z);
```

#### max <a href="#max" id="max"></a>

```solidity
function max(uint256 x, uint256 y) internal pure returns (uint256 z);
```

#### max <a href="#max-1" id="max-1"></a>

```solidity
function max(int256 x, int256 y) internal pure returns (int256 z);
```

#### max128 <a href="#max128" id="max128"></a>

```solidity
function max128(uint128 x, uint128 y) internal pure returns (uint128 z);
```

#### clip128 <a href="#clip128" id="clip128"></a>

```solidity
function clip128(uint128 x, uint128 y) internal pure returns (uint128);
```

#### clip <a href="#clip" id="clip"></a>

```solidity
function clip(uint256 x, uint256 y) internal pure returns (uint256);
```

#### divFloor <a href="#divfloor" id="divfloor"></a>

```solidity
function divFloor(uint256 x, uint256 y) internal pure returns (uint256);
```

#### divCeil <a href="#divceil" id="divceil"></a>

```solidity
function divCeil(uint256 x, uint256 y) internal pure returns (uint256);
```

#### mulFloor <a href="#mulfloor" id="mulfloor"></a>

```solidity
function mulFloor(uint256 x, uint256 y) internal pure returns (uint256);
```

#### mulCeil <a href="#mulceil" id="mulceil"></a>

```solidity
function mulCeil(uint256 x, uint256 y) internal pure returns (uint256);
```

#### invFloor <a href="#invfloor" id="invfloor"></a>

```solidity
function invFloor(uint256 x) internal pure returns (uint256);
```

#### invCeil <a href="#invceil" id="invceil"></a>

```solidity
function invCeil(uint256 denominator) internal pure returns (uint256 z);
```

#### mulDivFloor <a href="#muldivfloor" id="muldivfloor"></a>

```solidity
function mulDivFloor(uint256 x, uint256 y, uint256 k) internal pure returns (uint256 result);
```

#### mulDivCeil <a href="#muldivceil" id="muldivceil"></a>

```solidity
function mulDivCeil(uint256 x, uint256 y, uint256 k) internal pure returns (uint256 result);
```

#### mulDivDown <a href="#muldivdown" id="muldivdown"></a>

```solidity
function mulDivDown(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 z);
```

#### mulDivUp <a href="#muldivup" id="muldivup"></a>

```solidity
function mulDivUp(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 z);
```

#### mulDown <a href="#muldown" id="muldown"></a>

```solidity
function mulDown(uint256 x, uint256 y) internal pure returns (uint256);
```

#### mulUp <a href="#mulup" id="mulup"></a>

```solidity
function mulUp(uint256 x, uint256 y) internal pure returns (uint256);
```

#### divDown <a href="#divdown" id="divdown"></a>

```solidity
function divDown(uint256 x, uint256 y) internal pure returns (uint256);
```

#### divUp <a href="#divup" id="divup"></a>

```solidity
function divUp(uint256 x, uint256 y) internal pure returns (uint256);
```

#### scale <a href="#scale" id="scale"></a>

```solidity
function scale(uint8 decimals) internal pure returns (uint256);
```

#### ammScaleToTokenScale <a href="#ammscaletotokenscale" id="ammscaletotokenscale"></a>

```solidity
function ammScaleToTokenScale(uint256 amount, uint256 scaleFactor, bool ceil) internal pure returns (uint256 z);
```

#### tokenScaleToAmmScale <a href="#tokenscaletoammscale" id="tokenscaletoammscale"></a>

```solidity
function tokenScaleToAmmScale(uint256 amount, uint256 scaleFactor) internal pure returns (uint256);
```

#### abs32 <a href="#abs32" id="abs32"></a>

```solidity
function abs32(int32 x) internal pure returns (uint32);
```

#### abs <a href="#abs" id="abs"></a>

```solidity
function abs(int256 x) internal pure returns (uint256);
```

#### sqrt <a href="#sqrt" id="sqrt"></a>

```solidity
function sqrt(uint256 x) internal pure returns (uint256 z);
```

#### floorD8Unchecked <a href="#floord8unchecked" id="floord8unchecked"></a>

Floor of a D8 number without checking overflow in the cast to int32.

```solidity
function floorD8Unchecked(int256 val) internal pure returns (int32);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mav.xyz/technical-reference/maverick-v2/v2-contracts/maverick-v2-common-contracts/libraries/math.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
