> For the complete documentation index, see [llms.txt](https://docs.mav.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mav.xyz/technical-reference/maverick-v2/v2-contracts/maverick-v2-common-contracts/libraries/math.md).

# 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.
