(fixed-ip (map '(vector fixnum)
(lambda (x) (- 64 x))
(reverse ip)))
+
+ ;; The traditional network. (Exchange each `*' with the earliest
+ ;; available `#'.)
+ ;;
+ ;; - - - - - - - - 0 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
+ ;;
+ ;; * * * * - - - - 36 37 38 39 4 5 6 7
+ ;; * * * * - - - - 44 45 46 47 12 13 14 15
+ ;; * * * * - - - - 52 53 54 55 20 21 22 23
+ ;; * * * * - - - - 60 61 62 63 28 29 30 31
+ ;; - - - - # # # # 32 33 34 35 0 1 2 3
+ ;; - - - - # # # # 40 41 42 43 8 9 10 11
+ ;; - - - - # # # # 48 49 50 51 16 17 18 19
+ ;; - - - - # # # # 56 57 58 59 24 25 26 27
+ ;;
+ ;; * * - - * * - - 54 55 38 39 22 3 26 7
+ ;; * * - - * * - - 62 63 46 47 30 11 34 15
+ ;; - - # # - - # # 52 53 36 37 20 1 24 5
+ ;; - - # # - - # # 60 61 44 45 28 19 22 13
+ ;; * * - - * * - - 50 51 34 35 18 9 12 3
+ ;; * * - - * * - - 58 59 42 43 26 17 20 11
+ ;; - - # # - - # # 48 49 32 33 16 7 10 1
+ ;; - - # # - - # # 56 57 40 41 24 5 28 9
+ ;;
+ ;; * - * - * - * - 63 55 47 39 21 13 35 7
+ ;; - # - # - # - # 62 54 46 38 20 12 34 6
+ ;; * - * - * - * - 61 53 45 37 29 11 23 5
+ ;; - # - # - # - # 60 52 44 36 28 10 22 4
+ ;; * - * - * - * - 59 51 43 35 17 19 21 3
+ ;; - # - # - # - # 58 50 42 34 16 18 20 2
+ ;; * - * - * - * - 57 49 41 33 15 7 29 1
+ ;; - # - # - # - # 56 48 40 32 14 6 28 0
+ ;;
+ ;; * * * * * * * * 60 52 44 36 28 20 12 4
+ ;; - - - - - - - - 62 54 46 38 30 22 14 6
+ ;; - - - - - - - - 61 53 45 37 29 21 13 5
+ ;; # # # # # # # # 63 55 47 39 31 23 15 7
+ ;; * * * * * * * * 56 48 40 32 24 16 8 0
+ ;; - - - - - - - - 58 50 42 34 26 18 10 2
+ ;; - - - - - - - - 57 49 41 33 25 17 9 1
+ ;; # # # # # # # # 59 51 43 35 27 19 11 3
+ ;;
+ ;; * * * * * * * * 57 49 41 33 25 17 9 1
+ ;; * * * * * * * * 59 51 43 35 27 19 11 3
+ ;; - - - - - - - - 61 53 45 37 29 21 13 5
+ ;; - - - - - - - - 63 55 47 39 31 23 15 7
+ ;; - - - - - - - - 56 48 40 32 24 16 8 0
+ ;; - - - - - - - - 58 50 42 34 26 18 10 2
+ ;; # # # # # # # # 60 52 44 36 28 20 12 4
+ ;; # # # # # # # # 62 54 46 38 30 22 14 6
(trad-network
(make-permutation-network
64 ; 5 4 3 2 1 0
(:exchange-invert 0 3) ; ~2 ~1 ~0 ~5 ~4 ~3
(:exchange-invert 3 4) ; ~2 0 1 ~5 ~4 ~3
(:exchange-invert 4 5)))) ; ~0 2 1 ~5 ~4 ~3
+
+ ;; The new twizzle-optimized network. (Exchange each `*' with the
+ ;; earliest available `#'.)
+ ;;
+ ;; - - - - - - - - 0 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
+ ;;
+ ;; * * * * - - - - 36 37 38 39 4 5 6 7
+ ;; * * * * - - - - 44 45 46 47 12 13 14 15
+ ;; * * * * - - - - 52 53 54 55 20 21 22 23
+ ;; * * * * - - - - 60 61 62 63 28 29 30 31
+ ;; - - - - # # # # 32 33 34 35 0 1 2 3
+ ;; - - - - # # # # 40 41 42 43 8 9 10 11
+ ;; - - - - # # # # 48 49 50 51 16 17 18 19
+ ;; - - - - # # # # 56 57 58 59 24 25 26 27
+ ;;
+ ;; * * * * * * * * 48 49 50 51 16 17 18 19
+ ;; * * * * * * * * 56 57 58 59 24 25 26 27
+ ;; - - - - - - - - 52 53 54 55 20 21 22 23
+ ;; - - - - - - - - 60 61 62 63 28 29 30 31
+ ;; - - - - - - - - 32 33 34 35 0 1 2 3
+ ;; - - - - - - - - 40 41 42 43 8 9 10 11
+ ;; # # # # # # # # 36 37 38 39 4 5 6 7
+ ;; # # # # # # # # 44 45 46 47 12 13 14 15
+ ;;
+ ;; - - * * - - * * 48 49 32 33 16 17 0 1
+ ;; - - * * - - * * 56 57 40 41 24 25 8 9
+ ;; - - * * - - * * 52 53 36 37 20 21 4 5
+ ;; - - * * - - * * 60 61 44 45 28 29 12 13
+ ;; # # - - # # - - 50 51 34 35 18 19 2 3
+ ;; # # - - # # - - 58 59 42 43 26 27 10 11
+ ;; # # - - # # - - 54 55 38 39 22 23 6 7
+ ;; # # - - # # - - 62 63 46 47 30 31 14 15
+ ;;
+ ;; - - - - - - - - 48 49 32 33 16 17 0 1
+ ;; * * * * * * * * 50 51 34 35 18 19 2 3
+ ;; - - - - - - - - 52 53 36 37 20 21 4 5
+ ;; * * * * * * * * 54 55 38 39 22 23 6 7
+ ;; # # # # # # # # 56 57 40 41 24 25 8 9
+ ;; - - - - - - - - 58 59 42 43 26 27 10 11
+ ;; # # # # # # # # 60 61 44 45 28 29 12 13
+ ;; - - - - - - - - 62 63 46 47 30 31 14 15
+ ;;
+ ;; * - * - * - * - 57 49 41 33 25 17 9 1
+ ;; * - * - * - * - 59 51 43 35 27 19 11 3
+ ;; * - * - * - * - 61 53 45 37 29 21 13 5
+ ;; * - * - * - * - 63 55 47 39 31 23 15 7
+ ;; - # - # - # - # 56 48 40 32 24 16 8 0
+ ;; - # - # - # - # 58 50 42 34 26 18 10 2
+ ;; - # - # - # - # 60 52 44 36 28 20 12 4
+ ;; - # - # - # - # 62 54 46 38 30 22 14 6
(new-network
(make-permutation-network
64 ; 5 4 3 2 1 0