## BitMath

This library provides functionality for computing bit properties of an unsigned integer

### mostSignificantBit

function mostSignificantBit(uint256 x) internal pure returns (uint8 r)

Returns the index of the most significant bit of the number, where the least significant bit is at index 0 and the most significant bit is at index 255

The function satisfies the property: x >= 2mostSignificantBit(x) and x < 2(mostSignificantBit(x)+1)

Name Type Description
x uint256 the value for which to compute the most significant bit, must be greater than 0
Name Type Description
r uint8 the index of the most significant bit

### leastSignificantBit

function leastSignificantBit(uint256 x) internal pure returns (uint8 r)

Returns the index of the least significant bit of the number, where the least significant bit is at index 0 and the most significant bit is at index 255

The function satisfies the property: (x & 2leastSignificantBit(x)) != 0 and (x & (2(leastSignificantBit(x)) - 1)) == 0)

Name Type Description
x uint256 the value for which to compute the least significant bit, must be greater than 0
Name Type Description
r uint8 the index of the least significant bit

## BitMath

This library provides functionality for computing bit properties of an unsigned integer

### mostSignificantBit

function mostSignificantBit(uint256 x) internal pure returns (uint8 r)

Returns the index of the most significant bit of the number, where the least significant bit is at index 0 and the most significant bit is at index 255

The function satisfies the property: x >= 2mostSignificantBit(x) and x < 2(mostSignificantBit(x)+1)

Name Type Description
x uint256 the value for which to compute the most significant bit, must be greater than 0
Name Type Description
r uint8 the index of the most significant bit

### leastSignificantBit

function leastSignificantBit(uint256 x) internal pure returns (uint8 r)

Returns the index of the least significant bit of the number, where the least significant bit is at index 0 and the most significant bit is at index 255

The function satisfies the property: (x & 2leastSignificantBit(x)) != 0 and (x & (2(leastSignificantBit(x)) - 1)) == 0)

Name Type Description
x uint256 the value for which to compute the least significant bit, must be greater than 0
Name Type Description
r uint8 the index of the least significant bit

## BitMath

This library provides functionality for computing bit properties of an unsigned integer

### mostSignificantBit

function mostSignificantBit(uint256 x) internal pure returns (uint8 r)

Returns the index of the most significant bit of the number, where the least significant bit is at index 0 and the most significant bit is at index 255

The function satisfies the property: x >= 2mostSignificantBit(x) and x < 2(mostSignificantBit(x)+1)

Name Type Description
x uint256 the value for which to compute the most significant bit, must be greater than 0
Name Type Description
r uint8 the index of the most significant bit

### leastSignificantBit

function leastSignificantBit(uint256 x) internal pure returns (uint8 r)

Returns the index of the least significant bit of the number, where the least significant bit is at index 0 and the most significant bit is at index 255

The function satisfies the property: (x & 2leastSignificantBit(x)) != 0 and (x & (2(leastSignificantBit(x)) - 1)) == 0)

Name Type Description
x uint256 the value for which to compute the least significant bit, must be greater than 0
Name Type Description
r uint8 the index of the least significant bit