## Class MathUtil

• ```public final class MathUtil
extends Object```
Math utility methods.
• ### Method Summary

All Methods
Modifier and Type Method Description
`static int` `findNextPositivePowerOfTwo​(int value)`
Fast method of finding the next power of 2 greater than or equal to the supplied value.
`static boolean` ```isOutOfBounds​(int index, int length, int capacity)```
Determine if the requested `index` and `length` will fit within `capacity`.
`static int` `safeFindNextPositivePowerOfTwo​(int value)`
Fast method of finding the next power of 2 greater than or equal to the supplied value.
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Method Detail

• #### findNextPositivePowerOfTwo

`public static int findNextPositivePowerOfTwo​(int value)`
Fast method of finding the next power of 2 greater than or equal to the supplied value.

If the value is `<= 0` then 1 will be returned. This method is not suitable for `Integer.MIN_VALUE` or numbers greater than 2^30.

Parameters:
`value` - from which to search for next power of 2
Returns:
The next power of 2 or the value itself if it is a power of 2
• #### safeFindNextPositivePowerOfTwo

`public static int safeFindNextPositivePowerOfTwo​(int value)`
Fast method of finding the next power of 2 greater than or equal to the supplied value.

This method will do runtime bounds checking and call `findNextPositivePowerOfTwo(int)` if within a valid range.

Parameters:
`value` - from which to search for next power of 2
Returns:
The next power of 2 or the value itself if it is a power of 2.

Special cases for return values are as follows:

• `<= 0` -> 1
• `>= 2^30` -> 2^30
• #### isOutOfBounds

```public static boolean isOutOfBounds​(int index,
int length,
int capacity)```
Determine if the requested `index` and `length` will fit within `capacity`.
Parameters:
`index` - The starting index.
`length` - The length which will be utilized (starting from `index`).
`capacity` - The capacity that `index + length` is allowed to be within.
Returns:
`false` if the requested `index` and `length` will fit within `capacity`. `true` if this would result in an index out of bounds exception.