# 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);
```
