1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
use crate::networks::*;
use arrayref::array_mut_ref;

pub fn sortnet<T>(arr: &mut [T])
where
    T: PartialOrd,
{
    match arr.len() {
        0 => {
            sortnet0(array_mut_ref![arr, 0, 0]);
        }
        1 => {
            sortnet1(array_mut_ref![arr, 0, 1]);
        }
        2 => {
            sortnet2(array_mut_ref![arr, 0, 2]);
        }
        3 => {
            sortnet3(array_mut_ref![arr, 0, 3]);
        }
        4 => {
            sortnet4(array_mut_ref![arr, 0, 4]);
        }
        5 => {
            sortnet5(array_mut_ref![arr, 0, 5]);
        }
        6 => {
            sortnet6(array_mut_ref![arr, 0, 6]);
        }
        7 => {
            sortnet7(array_mut_ref![arr, 0, 7]);
        }
        8 => {
            sortnet8(array_mut_ref![arr, 0, 8]);
        }
        9 => {
            sortnet9(array_mut_ref![arr, 0, 9]);
        }
        10 => {
            sortnet10(array_mut_ref![arr, 0, 10]);
        }
        11 => {
            sortnet11(array_mut_ref![arr, 0, 11]);
        }
        12 => {
            sortnet12(array_mut_ref![arr, 0, 12]);
        }
        13 => {
            sortnet13(array_mut_ref![arr, 0, 13]);
        }
        14 => {
            sortnet14(array_mut_ref![arr, 0, 14]);
        }
        15 => {
            sortnet15(array_mut_ref![arr, 0, 15]);
        }
        16 => {
            sortnet16(array_mut_ref![arr, 0, 16]);
        }
        _ => {
            panic!("Unsupported size");
        }
    }
}