ltq_examples/
ltq_examples.rs1use gt_ltq::graph::{NPathsToNode, NodeToNodeDisjointPaths, NodeToSetDisjointPaths, SinglePath};
2use gt_ltq::LocallyTwistedCube;
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 LTQ.");
16 let n = 8;
17 let s = 0b0000_0001;
18
19 let graph = LocallyTwistedCube::new(n);
20
21 let path = graph.n_paths_to_node(n, s);
22
23 println!("{:#?}", path);
24}
25
26fn example_lemma2() {
27 println!("this is an example of lemma2 on a LTQ");
28 let n = 8;
29 let s = 0b0011_0011;
30 let d = 0b1010_1010;
31
32 let graph = LocallyTwistedCube::new(n);
33
34 let path = graph.single_path(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 LTQ");
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 = LocallyTwistedCube::new(n);
50
51 let paths = graph.node_to_set_disjoint_paths(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 LTQ");
58 let n = 8;
59 let s = 0b0101_0101;
60 let d = 0b0000_1111;
61
62 let graph = LocallyTwistedCube::new(n);
63
64 let paths = graph.node_to_node_disjoint_paths(s, d);
65
66 println!("{:#?}", paths);
67}