1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Utilities in Sucds.
use cratebroadword;
/// Returns the number of bits to represent `x` at least.
///
/// # Examples
///
/// ```
/// use jerky::utils::needed_bits;
///
/// assert_eq!(needed_bits(0), 1);
/// assert_eq!(needed_bits(1), 1);
/// assert_eq!(needed_bits(2), 2);
/// assert_eq!(needed_bits(255), 8);
/// assert_eq!(needed_bits(256), 9);
/// ```
/// Returns `ceil(x / y)`.
///
/// # Examples
///
/// ```
/// use jerky::utils::ceiled_divide;
///
/// assert_eq!(ceiled_divide(10, 2), 5);
/// assert_eq!(ceiled_divide(10, 3), 4);
/// ```
///
/// # Panics
///
/// It will panic if `y == 0`.
pub const