Expand description

An implementation of PowerOf2DigitIterable, a trait for iterating over a Natural’s base-$2^k$ digits.

§power_of_2_digits

use itertools::Itertools;
use malachite_base::num::basic::traits::Zero;
use malachite_base::num::conversion::traits::PowerOf2DigitIterable;
use malachite_nz::natural::Natural;

let n = Natural::ZERO;
assert!(PowerOf2DigitIterable::<u8>::power_of_2_digits(&n, 2)
    .next()
    .is_none());

// 107 = 1223_4
let n = Natural::from(107u32);
assert_eq!(
    PowerOf2DigitIterable::<u32>::power_of_2_digits(&n, 2).collect_vec(),
    vec![3, 2, 2, 1]
);

let n = Natural::ZERO;
assert!(PowerOf2DigitIterable::<u8>::power_of_2_digits(&n, 2)
    .next_back()
    .is_none());

// 107 = 1223_4
let n = Natural::from(107u32);
assert_eq!(
    PowerOf2DigitIterable::<u32>::power_of_2_digits(&n, 2)
        .rev()
        .collect_vec(),
    vec![1, 2, 2, 3]
);

Enums§