ltq_examples/
ltq_examples.rs

1use 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}