symm/des-base.h: Improve the IP permutation network.
[catacomb] / utils / permute.lisp
index 372f5cf..a8600fb 100644 (file)
           (:exchange-invert 1 4)       ; ~2 ~1  3 ~5 ~4  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
+          (:exchange-invert 4 5))))    ; ~0  2  1 ~5 ~4 ~3
+       (new-network
+       (make-permutation-network
+        64                             ;  5  4  3  2  1  0
+        '((:exchange-invert 2 5)       ; ~2  4  3 ~5  1  0
+          (:exchange-invert 4 5)       ; ~4  2  3 ~5  1  0
+          (:exchange        1 5)       ;  1  2  3 ~5 ~4  0
+          (:exchange        3 5)       ;  3  2  1 ~5 ~4  0
+          (:exchange-invert 0 5)))))   ; ~0  2  1 ~5 ~4 ~3
 
   (fresh-line)
 
   (print-permutation-network trad-network)
-  (demonstrate-permutation-network 64 trad-network fixed-ip))
+  (demonstrate-permutation-network 64 trad-network fixed-ip)
+  (terpri)
+  (print-permutation-network new-network)
+  (demonstrate-permutation-network 64 new-network fixed-ip))