hyper_cube_examples/
hyper_cube_examples.rs1use hypercube::graph::{Lemma1, Lemma2, NodeToNode, NodeToSet};
2use hypercube::HyperCube;
3
4fn main() {
5 example_lemma1();
6 println!("#####################");
7 example_lemma2();
8 println!("#####################");
9 example_node_to_set();
10 println!("#####################");
11 example_node_to_node();
12}
13
14fn example_lemma1() {
15 println!("this is an example of lemma1 on a HyperCube.");
16 let n = 8;
17 let s = 0b0000_0001;
18
19 let graph = HyperCube::new(n);
20
21 let path = graph.lemma1(n, s);
22
23 println!("{:#?}", path);
24}
25
26fn example_lemma2() {
27 println!("this is an example of lemma2 on a HyperCube");
28 let n = 8;
29 let s = 0b0011_0011;
30 let d = 0b1010_1010;
31
32 let graph = HyperCube::new(n);
33
34 let path = graph.lemma2(s, d);
35
36 println!("{:?}", path);
37}
38
39fn example_node_to_set() {
40 println!("This is an example of node to set on a HyperCube");
41 let n = 8;
42 let s = 0b0101_0101;
43 let mut d = vec![];
44
45 for i in 0..8 {
46 d.push(1 << i);
47 }
48
49 let graph = HyperCube::new(n);
50
51 let paths = graph.node_to_set(s, &d);
52
53 println!("{:#?}", paths);
54}
55
56fn example_node_to_node() {
57 println!("This is an example of node to node on a HyperCube");
58 let n = 8;
59 let s = 0b0101_0101;
60 let d = 0b0000_1111;
61
62 let graph = HyperCube::new(n);
63
64 let paths = graph.node_to_node(s, d);
65
66 println!("{:#?}", paths);
67}