Function bitwise::word::inner_perfect_shuffle [] [src]

pub fn inner_perfect_shuffle<T: Word>(x: T) -> T

Inner Perfect Shuffle of x.

See also: Hacker's Delight: shuffling bits.

Examples

use bitwise::word::*;

let n = 0b0110_0101_1101_1011_1111_1001_0110_0011u32;
//        abcd efgh ijkl mnop ABCD EFGH IJKL MNOP,
let s = 0b1011_1110_1001_0011_0111_1001_0100_1111u32;
//        AaBb CcDd EeFf GgHh IiJj KkLl MmNn OoPp

assert_eq!(n.inner_perfect_shuffle(), s);
assert_eq!(inner_perfect_shuffle(n), s);