#![feature(test)]
extern crate test;
use hypercube::graph::{Lemma1, Lemma2, NodeToNode, NodeToSet};
use hypercube::HyperCube;
use test::Bencher;
#[bench]
fn hyper_cube_lemma1_64bit(b: &mut Bencher) {
let dim = 64;
let graph = HyperCube::new(dim);
let d = 0xffff_ffff_0000_0000;
b.iter(|| graph.lemma1(dim, d));
}
#[bench]
fn hyper_cube_lemma2_64bit(b: &mut Bencher) {
let dim = 64;
let graph = HyperCube::new(dim);
let s = 0x0000_0000_ffff_ffff;
let d = 0xffff_ffff_0000_0000;
b.iter(|| graph.lemma2(s, d));
}
#[bench]
fn hyper_cube_node_to_set_64bit(b: &mut Bencher) {
let dim = 64;
let graph = HyperCube::new(dim);
let s = 0x0000_0000_ffff_ffff;
let mut d = vec![];
for i in 0..64 {
d.push(1 << i);
}
b.iter(|| graph.node_to_set(s, &d));
}
#[bench]
fn hyper_cube_node_to_node_64bit(b: &mut Bencher) {
let dim = 64;
let graph = HyperCube::new(dim);
let s = 0x0000_0000_ffff_ffff;
let d = 0xffff_ffff_0000_0000;
b.iter(|| graph.node_to_node(s, d));
}