Expand description

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

power_of_2_digits

extern crate itertools;
extern crate malachite_base;

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

A double-ended iterator over the base-$2^k$ digits of a Natural.

A double-ended iterator over the base-$2^k$ $digits of a Natural.