Wed Oct 12 21:12:52 2022 hamming_test(): Python version: 3.6.9 Test hamming() ui4_to_ubvec_test(): ui4_to_ubvec() converts an unsigned integer to an unsigned binary vector; UI4 --> UBVEC --> UI4 0 0000000000 0 1 0000000001 1 2 0000000010 2 3 0000000011 3 4 0000000100 4 5 0000000101 5 6 0000000110 6 7 0000000111 7 8 0000001000 8 9 0000001001 9 10 0000001010 10 hamming74_g_test(): hamming74_g() returns the Hamming G74 matrix. Multiplying a message by G74 gives the corresponding codeword. Exponent R = 3 Block length N = 2**R-1 = 7 Message length K = 2**R - R - 1 = 4 I Message(I) Codeword(I) 0 : [0. 0. 0. 0.] --> [0. 0. 0. 0. 0. 0. 0.] 1 : [0. 0. 0. 1.] --> [1. 1. 0. 1. 0. 0. 1.] 2 : [0. 0. 1. 0.] --> [0. 1. 0. 1. 0. 1. 0.] 3 : [0. 0. 1. 1.] --> [1. 0. 0. 0. 0. 1. 1.] 4 : [0. 1. 0. 0.] --> [1. 0. 0. 1. 1. 0. 0.] 5 : [0. 1. 0. 1.] --> [0. 1. 0. 0. 1. 0. 1.] 6 : [0. 1. 1. 0.] --> [1. 1. 0. 0. 1. 1. 0.] 7 : [0. 1. 1. 1.] --> [0. 0. 0. 1. 1. 1. 1.] 8 : [1. 0. 0. 0.] --> [1. 1. 1. 0. 0. 0. 0.] 9 : [1. 0. 0. 1.] --> [0. 0. 1. 1. 0. 0. 1.] 10 : [1. 0. 1. 0.] --> [1. 0. 1. 1. 0. 1. 0.] 11 : [1. 0. 1. 1.] --> [0. 1. 1. 0. 0. 1. 1.] 12 : [1. 1. 0. 0.] --> [0. 1. 1. 1. 1. 0. 0.] 13 : [1. 1. 0. 1.] --> [1. 0. 1. 0. 1. 0. 1.] 14 : [1. 1. 1. 0.] --> [0. 0. 1. 0. 1. 1. 0.] 15 : [1. 1. 1. 1.] --> [1. 1. 1. 1. 1. 1. 1.] hamming74_h_test(): hamming74_h() returns the Hamming H74 parity-check matrix. Exponent R = 3 Block length N = 2**R-1 = 7 Message length K = 2**R - R - 1 = 4 Test #1: mod ( H * G, 2 ) = 0? | mod ( H * G, 2 ) | = 0.0 Test #2: Only codewords with 0 parity are Messages I Codeword(I) Parity 0 : [0. 0. 0. 0. 0. 0. 0.] --> [0. 0. 0.] 1 : [0. 0. 0. 0. 0. 0. 1.] --> [1. 1. 1.] 2 : [0. 0. 0. 0. 0. 1. 0.] --> [0. 1. 1.] 3 : [0. 0. 0. 0. 0. 1. 1.] --> [1. 0. 0.] 4 : [0. 0. 0. 0. 1. 0. 0.] --> [1. 0. 1.] 5 : [0. 0. 0. 0. 1. 0. 1.] --> [0. 1. 0.] 6 : [0. 0. 0. 0. 1. 1. 0.] --> [1. 1. 0.] 7 : [0. 0. 0. 0. 1. 1. 1.] --> [0. 0. 1.] 8 : [0. 0. 0. 1. 0. 0. 0.] --> [0. 0. 1.] 9 : [0. 0. 0. 1. 0. 0. 1.] --> [1. 1. 0.] 10 : [0. 0. 0. 1. 0. 1. 0.] --> [0. 1. 0.] 11 : [0. 0. 0. 1. 0. 1. 1.] --> [1. 0. 1.] 12 : [0. 0. 0. 1. 1. 0. 0.] --> [1. 0. 0.] 13 : [0. 0. 0. 1. 1. 0. 1.] --> [0. 1. 1.] 14 : [0. 0. 0. 1. 1. 1. 0.] --> [1. 1. 1.] 15 : [0. 0. 0. 1. 1. 1. 1.] --> [0. 0. 0.] 16 : [0. 0. 1. 0. 0. 0. 0.] --> [1. 1. 0.] 17 : [0. 0. 1. 0. 0. 0. 1.] --> [0. 0. 1.] 18 : [0. 0. 1. 0. 0. 1. 0.] --> [1. 0. 1.] 19 : [0. 0. 1. 0. 0. 1. 1.] --> [0. 1. 0.] 20 : [0. 0. 1. 0. 1. 0. 0.] --> [0. 1. 1.] 21 : [0. 0. 1. 0. 1. 0. 1.] --> [1. 0. 0.] 22 : [0. 0. 1. 0. 1. 1. 0.] --> [0. 0. 0.] 23 : [0. 0. 1. 0. 1. 1. 1.] --> [1. 1. 1.] 24 : [0. 0. 1. 1. 0. 0. 0.] --> [1. 1. 1.] 25 : [0. 0. 1. 1. 0. 0. 1.] --> [0. 0. 0.] 26 : [0. 0. 1. 1. 0. 1. 0.] --> [1. 0. 0.] 27 : [0. 0. 1. 1. 0. 1. 1.] --> [0. 1. 1.] 28 : [0. 0. 1. 1. 1. 0. 0.] --> [0. 1. 0.] 29 : [0. 0. 1. 1. 1. 0. 1.] --> [1. 0. 1.] 30 : [0. 0. 1. 1. 1. 1. 0.] --> [0. 0. 1.] 31 : [0. 0. 1. 1. 1. 1. 1.] --> [1. 1. 0.] 32 : [0. 1. 0. 0. 0. 0. 0.] --> [0. 1. 0.] 33 : [0. 1. 0. 0. 0. 0. 1.] --> [1. 0. 1.] 34 : [0. 1. 0. 0. 0. 1. 0.] --> [0. 0. 1.] 35 : [0. 1. 0. 0. 0. 1. 1.] --> [1. 1. 0.] 36 : [0. 1. 0. 0. 1. 0. 0.] --> [1. 1. 1.] 37 : [0. 1. 0. 0. 1. 0. 1.] --> [0. 0. 0.] 38 : [0. 1. 0. 0. 1. 1. 0.] --> [1. 0. 0.] 39 : [0. 1. 0. 0. 1. 1. 1.] --> [0. 1. 1.] 40 : [0. 1. 0. 1. 0. 0. 0.] --> [0. 1. 1.] 41 : [0. 1. 0. 1. 0. 0. 1.] --> [1. 0. 0.] 42 : [0. 1. 0. 1. 0. 1. 0.] --> [0. 0. 0.] 43 : [0. 1. 0. 1. 0. 1. 1.] --> [1. 1. 1.] 44 : [0. 1. 0. 1. 1. 0. 0.] --> [1. 1. 0.] 45 : [0. 1. 0. 1. 1. 0. 1.] --> [0. 0. 1.] 46 : [0. 1. 0. 1. 1. 1. 0.] --> [1. 0. 1.] 47 : [0. 1. 0. 1. 1. 1. 1.] --> [0. 1. 0.] 48 : [0. 1. 1. 0. 0. 0. 0.] --> [1. 0. 0.] 49 : [0. 1. 1. 0. 0. 0. 1.] --> [0. 1. 1.] 50 : [0. 1. 1. 0. 0. 1. 0.] --> [1. 1. 1.] 51 : [0. 1. 1. 0. 0. 1. 1.] --> [0. 0. 0.] 52 : [0. 1. 1. 0. 1. 0. 0.] --> [0. 0. 1.] 53 : [0. 1. 1. 0. 1. 0. 1.] --> [1. 1. 0.] 54 : [0. 1. 1. 0. 1. 1. 0.] --> [0. 1. 0.] 55 : [0. 1. 1. 0. 1. 1. 1.] --> [1. 0. 1.] 56 : [0. 1. 1. 1. 0. 0. 0.] --> [1. 0. 1.] 57 : [0. 1. 1. 1. 0. 0. 1.] --> [0. 1. 0.] 58 : [0. 1. 1. 1. 0. 1. 0.] --> [1. 1. 0.] 59 : [0. 1. 1. 1. 0. 1. 1.] --> [0. 0. 1.] 60 : [0. 1. 1. 1. 1. 0. 0.] --> [0. 0. 0.] 61 : [0. 1. 1. 1. 1. 0. 1.] --> [1. 1. 1.] 62 : [0. 1. 1. 1. 1. 1. 0.] --> [0. 1. 1.] 63 : [0. 1. 1. 1. 1. 1. 1.] --> [1. 0. 0.] 64 : [1. 0. 0. 0. 0. 0. 0.] --> [1. 0. 0.] 65 : [1. 0. 0. 0. 0. 0. 1.] --> [0. 1. 1.] 66 : [1. 0. 0. 0. 0. 1. 0.] --> [1. 1. 1.] 67 : [1. 0. 0. 0. 0. 1. 1.] --> [0. 0. 0.] 68 : [1. 0. 0. 0. 1. 0. 0.] --> [0. 0. 1.] 69 : [1. 0. 0. 0. 1. 0. 1.] --> [1. 1. 0.] 70 : [1. 0. 0. 0. 1. 1. 0.] --> [0. 1. 0.] 71 : [1. 0. 0. 0. 1. 1. 1.] --> [1. 0. 1.] 72 : [1. 0. 0. 1. 0. 0. 0.] --> [1. 0. 1.] 73 : [1. 0. 0. 1. 0. 0. 1.] --> [0. 1. 0.] 74 : [1. 0. 0. 1. 0. 1. 0.] --> [1. 1. 0.] 75 : [1. 0. 0. 1. 0. 1. 1.] --> [0. 0. 1.] 76 : [1. 0. 0. 1. 1. 0. 0.] --> [0. 0. 0.] 77 : [1. 0. 0. 1. 1. 0. 1.] --> [1. 1. 1.] 78 : [1. 0. 0. 1. 1. 1. 0.] --> [0. 1. 1.] 79 : [1. 0. 0. 1. 1. 1. 1.] --> [1. 0. 0.] 80 : [1. 0. 1. 0. 0. 0. 0.] --> [0. 1. 0.] 81 : [1. 0. 1. 0. 0. 0. 1.] --> [1. 0. 1.] 82 : [1. 0. 1. 0. 0. 1. 0.] --> [0. 0. 1.] 83 : [1. 0. 1. 0. 0. 1. 1.] --> [1. 1. 0.] 84 : [1. 0. 1. 0. 1. 0. 0.] --> [1. 1. 1.] 85 : [1. 0. 1. 0. 1. 0. 1.] --> [0. 0. 0.] 86 : [1. 0. 1. 0. 1. 1. 0.] --> [1. 0. 0.] 87 : [1. 0. 1. 0. 1. 1. 1.] --> [0. 1. 1.] 88 : [1. 0. 1. 1. 0. 0. 0.] --> [0. 1. 1.] 89 : [1. 0. 1. 1. 0. 0. 1.] --> [1. 0. 0.] 90 : [1. 0. 1. 1. 0. 1. 0.] --> [0. 0. 0.] 91 : [1. 0. 1. 1. 0. 1. 1.] --> [1. 1. 1.] 92 : [1. 0. 1. 1. 1. 0. 0.] --> [1. 1. 0.] 93 : [1. 0. 1. 1. 1. 0. 1.] --> [0. 0. 1.] 94 : [1. 0. 1. 1. 1. 1. 0.] --> [1. 0. 1.] 95 : [1. 0. 1. 1. 1. 1. 1.] --> [0. 1. 0.] 96 : [1. 1. 0. 0. 0. 0. 0.] --> [1. 1. 0.] 97 : [1. 1. 0. 0. 0. 0. 1.] --> [0. 0. 1.] 98 : [1. 1. 0. 0. 0. 1. 0.] --> [1. 0. 1.] 99 : [1. 1. 0. 0. 0. 1. 1.] --> [0. 1. 0.] 100 : [1. 1. 0. 0. 1. 0. 0.] --> [0. 1. 1.] 101 : [1. 1. 0. 0. 1. 0. 1.] --> [1. 0. 0.] 102 : [1. 1. 0. 0. 1. 1. 0.] --> [0. 0. 0.] 103 : [1. 1. 0. 0. 1. 1. 1.] --> [1. 1. 1.] 104 : [1. 1. 0. 1. 0. 0. 0.] --> [1. 1. 1.] 105 : [1. 1. 0. 1. 0. 0. 1.] --> [0. 0. 0.] 106 : [1. 1. 0. 1. 0. 1. 0.] --> [1. 0. 0.] 107 : [1. 1. 0. 1. 0. 1. 1.] --> [0. 1. 1.] 108 : [1. 1. 0. 1. 1. 0. 0.] --> [0. 1. 0.] 109 : [1. 1. 0. 1. 1. 0. 1.] --> [1. 0. 1.] 110 : [1. 1. 0. 1. 1. 1. 0.] --> [0. 0. 1.] 111 : [1. 1. 0. 1. 1. 1. 1.] --> [1. 1. 0.] 112 : [1. 1. 1. 0. 0. 0. 0.] --> [0. 0. 0.] 113 : [1. 1. 1. 0. 0. 0. 1.] --> [1. 1. 1.] 114 : [1. 1. 1. 0. 0. 1. 0.] --> [0. 1. 1.] 115 : [1. 1. 1. 0. 0. 1. 1.] --> [1. 0. 0.] 116 : [1. 1. 1. 0. 1. 0. 0.] --> [1. 0. 1.] 117 : [1. 1. 1. 0. 1. 0. 1.] --> [0. 1. 0.] 118 : [1. 1. 1. 0. 1. 1. 0.] --> [1. 1. 0.] 119 : [1. 1. 1. 0. 1. 1. 1.] --> [0. 0. 1.] 120 : [1. 1. 1. 1. 0. 0. 0.] --> [0. 0. 1.] 121 : [1. 1. 1. 1. 0. 0. 1.] --> [1. 1. 0.] 122 : [1. 1. 1. 1. 0. 1. 0.] --> [0. 1. 0.] 123 : [1. 1. 1. 1. 0. 1. 1.] --> [1. 0. 1.] 124 : [1. 1. 1. 1. 1. 0. 0.] --> [1. 0. 0.] 125 : [1. 1. 1. 1. 1. 0. 1.] --> [0. 1. 1.] 126 : [1. 1. 1. 1. 1. 1. 0.] --> [1. 1. 1.] 127 : [1. 1. 1. 1. 1. 1. 1.] --> [0. 0. 0.] hamming74_r_test(): hamming74_r() returns the Hamming R74 matrix. Multiplying a codeword by R74 gives the original message. Exponent R = 3 Block length N = 2**R-1 = 7 Message length K = 2**R - R - 1 = 4 I Message Codeword Message 0 : [0. 0. 0. 0.] --> [0. 0. 0. 0. 0. 0. 0.] --> [0. 0. 0. 0.] 1 : [0. 0. 0. 1.] --> [1. 1. 0. 1. 0. 0. 1.] --> [0. 0. 0. 1.] 2 : [0. 0. 1. 0.] --> [0. 1. 0. 1. 0. 1. 0.] --> [0. 0. 1. 0.] 3 : [0. 0. 1. 1.] --> [1. 0. 0. 0. 0. 1. 1.] --> [0. 0. 1. 1.] 4 : [0. 1. 0. 0.] --> [1. 0. 0. 1. 1. 0. 0.] --> [0. 1. 0. 0.] 5 : [0. 1. 0. 1.] --> [0. 1. 0. 0. 1. 0. 1.] --> [0. 1. 0. 1.] 6 : [0. 1. 1. 0.] --> [1. 1. 0. 0. 1. 1. 0.] --> [0. 1. 1. 0.] 7 : [0. 1. 1. 1.] --> [0. 0. 0. 1. 1. 1. 1.] --> [0. 1. 1. 1.] 8 : [1. 0. 0. 0.] --> [1. 1. 1. 0. 0. 0. 0.] --> [1. 0. 0. 0.] 9 : [1. 0. 0. 1.] --> [0. 0. 1. 1. 0. 0. 1.] --> [1. 0. 0. 1.] 10 : [1. 0. 1. 0.] --> [1. 0. 1. 1. 0. 1. 0.] --> [1. 0. 1. 0.] 11 : [1. 0. 1. 1.] --> [0. 1. 1. 0. 0. 1. 1.] --> [1. 0. 1. 1.] 12 : [1. 1. 0. 0.] --> [0. 1. 1. 1. 1. 0. 0.] --> [1. 1. 0. 0.] 13 : [1. 1. 0. 1.] --> [1. 0. 1. 0. 1. 0. 1.] --> [1. 1. 0. 1.] 14 : [1. 1. 1. 0.] --> [0. 0. 1. 0. 1. 1. 0.] --> [1. 1. 1. 0.] 15 : [1. 1. 1. 1.] --> [1. 1. 1. 1. 1. 1. 1.] --> [1. 1. 1. 1.] hamming84_g_test(): hamming84_g() returns the Hamming G84 matrix. Multiplying a message by G84 gives the corresponding codeword, and includes a parity bit. Exponent R = 3 Block length N = 2**R-1 = 8 Message length K = 2**R - R - 1 = 4 I Message(I) Codeword(I) 0 : [0. 0. 0. 0.] --> [0. 0. 0. 0. 0. 0. 0. 0.] 1 : [0. 0. 0. 1.] --> [0. 0. 0. 1. 1. 1. 1. 0.] 2 : [0. 0. 1. 0.] --> [0. 0. 1. 0. 1. 1. 0. 1.] 3 : [0. 0. 1. 1.] --> [0. 0. 1. 1. 0. 0. 1. 1.] 4 : [0. 1. 0. 0.] --> [0. 1. 0. 0. 1. 0. 1. 1.] 5 : [0. 1. 0. 1.] --> [0. 1. 0. 1. 0. 1. 0. 1.] 6 : [0. 1. 1. 0.] --> [0. 1. 1. 0. 0. 1. 1. 0.] 7 : [0. 1. 1. 1.] --> [0. 1. 1. 1. 1. 0. 0. 0.] 8 : [1. 0. 0. 0.] --> [1. 0. 0. 0. 0. 1. 1. 1.] 9 : [1. 0. 0. 1.] --> [1. 0. 0. 1. 1. 0. 0. 1.] 10 : [1. 0. 1. 0.] --> [1. 0. 1. 0. 1. 0. 1. 0.] 11 : [1. 0. 1. 1.] --> [1. 0. 1. 1. 0. 1. 0. 0.] 12 : [1. 1. 0. 0.] --> [1. 1. 0. 0. 1. 1. 0. 0.] 13 : [1. 1. 0. 1.] --> [1. 1. 0. 1. 0. 0. 1. 0.] 14 : [1. 1. 1. 0.] --> [1. 1. 1. 0. 0. 0. 0. 1.] 15 : [1. 1. 1. 1.] --> [1. 1. 1. 1. 1. 1. 1. 1.] hamming84_h_test(): hamming84_h() returns the Hamming H74 parity-check matrix. Exponent R = 3 Block length N = 2**R = 8 Message length K = 2**R - R - 1 = 4 Test #1: mod ( H * G, 2 ) = 0? | mod ( H * G, 2 ) | = 0.0 Test #2: Only codewords with 0 parity are Messages I Codeword(I) Parity 0 : [0. 0. 0. 0. 0. 0. 0. 0.] --> [0. 0. 0. 0.] 1 : [0. 0. 0. 0. 0. 0. 0. 1.] --> [0. 0. 0. 1.] 2 : [0. 0. 0. 0. 0. 0. 1. 0.] --> [0. 0. 1. 0.] 3 : [0. 0. 0. 0. 0. 0. 1. 1.] --> [0. 0. 1. 1.] 4 : [0. 0. 0. 0. 0. 1. 0. 0.] --> [0. 1. 0. 0.] 5 : [0. 0. 0. 0. 0. 1. 0. 1.] --> [0. 1. 0. 1.] 6 : [0. 0. 0. 0. 0. 1. 1. 0.] --> [0. 1. 1. 0.] 7 : [0. 0. 0. 0. 0. 1. 1. 1.] --> [0. 1. 1. 1.] 8 : [0. 0. 0. 0. 1. 0. 0. 0.] --> [1. 0. 0. 0.] 9 : [0. 0. 0. 0. 1. 0. 0. 1.] --> [1. 0. 0. 1.] 10 : [0. 0. 0. 0. 1. 0. 1. 0.] --> [1. 0. 1. 0.] 11 : [0. 0. 0. 0. 1. 0. 1. 1.] --> [1. 0. 1. 1.] 12 : [0. 0. 0. 0. 1. 1. 0. 0.] --> [1. 1. 0. 0.] 13 : [0. 0. 0. 0. 1. 1. 0. 1.] --> [1. 1. 0. 1.] 14 : [0. 0. 0. 0. 1. 1. 1. 0.] --> [1. 1. 1. 0.] 15 : [0. 0. 0. 0. 1. 1. 1. 1.] --> [1. 1. 1. 1.] 16 : [0. 0. 0. 1. 0. 0. 0. 0.] --> [1. 1. 1. 0.] 17 : [0. 0. 0. 1. 0. 0. 0. 1.] --> [1. 1. 1. 1.] 18 : [0. 0. 0. 1. 0. 0. 1. 0.] --> [1. 1. 0. 0.] 19 : [0. 0. 0. 1. 0. 0. 1. 1.] --> [1. 1. 0. 1.] 20 : [0. 0. 0. 1. 0. 1. 0. 0.] --> [1. 0. 1. 0.] 21 : [0. 0. 0. 1. 0. 1. 0. 1.] --> [1. 0. 1. 1.] 22 : [0. 0. 0. 1. 0. 1. 1. 0.] --> [1. 0. 0. 0.] 23 : [0. 0. 0. 1. 0. 1. 1. 1.] --> [1. 0. 0. 1.] 24 : [0. 0. 0. 1. 1. 0. 0. 0.] --> [0. 1. 1. 0.] 25 : [0. 0. 0. 1. 1. 0. 0. 1.] --> [0. 1. 1. 1.] 26 : [0. 0. 0. 1. 1. 0. 1. 0.] --> [0. 1. 0. 0.] 27 : [0. 0. 0. 1. 1. 0. 1. 1.] --> [0. 1. 0. 1.] 28 : [0. 0. 0. 1. 1. 1. 0. 0.] --> [0. 0. 1. 0.] 29 : [0. 0. 0. 1. 1. 1. 0. 1.] --> [0. 0. 1. 1.] 30 : [0. 0. 0. 1. 1. 1. 1. 0.] --> [0. 0. 0. 0.] 31 : [0. 0. 0. 1. 1. 1. 1. 1.] --> [0. 0. 0. 1.] 32 : [0. 0. 1. 0. 0. 0. 0. 0.] --> [1. 1. 0. 1.] 33 : [0. 0. 1. 0. 0. 0. 0. 1.] --> [1. 1. 0. 0.] 34 : [0. 0. 1. 0. 0. 0. 1. 0.] --> [1. 1. 1. 1.] 35 : [0. 0. 1. 0. 0. 0. 1. 1.] --> [1. 1. 1. 0.] 36 : [0. 0. 1. 0. 0. 1. 0. 0.] --> [1. 0. 0. 1.] 37 : [0. 0. 1. 0. 0. 1. 0. 1.] --> [1. 0. 0. 0.] 38 : [0. 0. 1. 0. 0. 1. 1. 0.] --> [1. 0. 1. 1.] 39 : [0. 0. 1. 0. 0. 1. 1. 1.] --> [1. 0. 1. 0.] 40 : [0. 0. 1. 0. 1. 0. 0. 0.] --> [0. 1. 0. 1.] 41 : [0. 0. 1. 0. 1. 0. 0. 1.] --> [0. 1. 0. 0.] 42 : [0. 0. 1. 0. 1. 0. 1. 0.] --> [0. 1. 1. 1.] 43 : [0. 0. 1. 0. 1. 0. 1. 1.] --> [0. 1. 1. 0.] 44 : [0. 0. 1. 0. 1. 1. 0. 0.] --> [0. 0. 0. 1.] 45 : [0. 0. 1. 0. 1. 1. 0. 1.] --> [0. 0. 0. 0.] 46 : [0. 0. 1. 0. 1. 1. 1. 0.] --> [0. 0. 1. 1.] 47 : [0. 0. 1. 0. 1. 1. 1. 1.] --> [0. 0. 1. 0.] 48 : [0. 0. 1. 1. 0. 0. 0. 0.] --> [0. 0. 1. 1.] 49 : [0. 0. 1. 1. 0. 0. 0. 1.] --> [0. 0. 1. 0.] 50 : [0. 0. 1. 1. 0. 0. 1. 0.] --> [0. 0. 0. 1.] 51 : [0. 0. 1. 1. 0. 0. 1. 1.] --> [0. 0. 0. 0.] 52 : [0. 0. 1. 1. 0. 1. 0. 0.] --> [0. 1. 1. 1.] 53 : [0. 0. 1. 1. 0. 1. 0. 1.] --> [0. 1. 1. 0.] 54 : [0. 0. 1. 1. 0. 1. 1. 0.] --> [0. 1. 0. 1.] 55 : [0. 0. 1. 1. 0. 1. 1. 1.] --> [0. 1. 0. 0.] 56 : [0. 0. 1. 1. 1. 0. 0. 0.] --> [1. 0. 1. 1.] 57 : [0. 0. 1. 1. 1. 0. 0. 1.] --> [1. 0. 1. 0.] 58 : [0. 0. 1. 1. 1. 0. 1. 0.] --> [1. 0. 0. 1.] 59 : [0. 0. 1. 1. 1. 0. 1. 1.] --> [1. 0. 0. 0.] 60 : [0. 0. 1. 1. 1. 1. 0. 0.] --> [1. 1. 1. 1.] 61 : [0. 0. 1. 1. 1. 1. 0. 1.] --> [1. 1. 1. 0.] 62 : [0. 0. 1. 1. 1. 1. 1. 0.] --> [1. 1. 0. 1.] 63 : [0. 0. 1. 1. 1. 1. 1. 1.] --> [1. 1. 0. 0.] 64 : [0. 1. 0. 0. 0. 0. 0. 0.] --> [1. 0. 1. 1.] 65 : [0. 1. 0. 0. 0. 0. 0. 1.] --> [1. 0. 1. 0.] 66 : [0. 1. 0. 0. 0. 0. 1. 0.] --> [1. 0. 0. 1.] 67 : [0. 1. 0. 0. 0. 0. 1. 1.] --> [1. 0. 0. 0.] 68 : [0. 1. 0. 0. 0. 1. 0. 0.] --> [1. 1. 1. 1.] 69 : [0. 1. 0. 0. 0. 1. 0. 1.] --> [1. 1. 1. 0.] 70 : [0. 1. 0. 0. 0. 1. 1. 0.] --> [1. 1. 0. 1.] 71 : [0. 1. 0. 0. 0. 1. 1. 1.] --> [1. 1. 0. 0.] 72 : [0. 1. 0. 0. 1. 0. 0. 0.] --> [0. 0. 1. 1.] 73 : [0. 1. 0. 0. 1. 0. 0. 1.] --> [0. 0. 1. 0.] 74 : [0. 1. 0. 0. 1. 0. 1. 0.] --> [0. 0. 0. 1.] 75 : [0. 1. 0. 0. 1. 0. 1. 1.] --> [0. 0. 0. 0.] 76 : [0. 1. 0. 0. 1. 1. 0. 0.] --> [0. 1. 1. 1.] 77 : [0. 1. 0. 0. 1. 1. 0. 1.] --> [0. 1. 1. 0.] 78 : [0. 1. 0. 0. 1. 1. 1. 0.] --> [0. 1. 0. 1.] 79 : [0. 1. 0. 0. 1. 1. 1. 1.] --> [0. 1. 0. 0.] 80 : [0. 1. 0. 1. 0. 0. 0. 0.] --> [0. 1. 0. 1.] 81 : [0. 1. 0. 1. 0. 0. 0. 1.] --> [0. 1. 0. 0.] 82 : [0. 1. 0. 1. 0. 0. 1. 0.] --> [0. 1. 1. 1.] 83 : [0. 1. 0. 1. 0. 0. 1. 1.] --> [0. 1. 1. 0.] 84 : [0. 1. 0. 1. 0. 1. 0. 0.] --> [0. 0. 0. 1.] 85 : [0. 1. 0. 1. 0. 1. 0. 1.] --> [0. 0. 0. 0.] 86 : [0. 1. 0. 1. 0. 1. 1. 0.] --> [0. 0. 1. 1.] 87 : [0. 1. 0. 1. 0. 1. 1. 1.] --> [0. 0. 1. 0.] 88 : [0. 1. 0. 1. 1. 0. 0. 0.] --> [1. 1. 0. 1.] 89 : [0. 1. 0. 1. 1. 0. 0. 1.] --> [1. 1. 0. 0.] 90 : [0. 1. 0. 1. 1. 0. 1. 0.] --> [1. 1. 1. 1.] 91 : [0. 1. 0. 1. 1. 0. 1. 1.] --> [1. 1. 1. 0.] 92 : [0. 1. 0. 1. 1. 1. 0. 0.] --> [1. 0. 0. 1.] 93 : [0. 1. 0. 1. 1. 1. 0. 1.] --> [1. 0. 0. 0.] 94 : [0. 1. 0. 1. 1. 1. 1. 0.] --> [1. 0. 1. 1.] 95 : [0. 1. 0. 1. 1. 1. 1. 1.] --> [1. 0. 1. 0.] 96 : [0. 1. 1. 0. 0. 0. 0. 0.] --> [0. 1. 1. 0.] 97 : [0. 1. 1. 0. 0. 0. 0. 1.] --> [0. 1. 1. 1.] 98 : [0. 1. 1. 0. 0. 0. 1. 0.] --> [0. 1. 0. 0.] 99 : [0. 1. 1. 0. 0. 0. 1. 1.] --> [0. 1. 0. 1.] 100 : [0. 1. 1. 0. 0. 1. 0. 0.] --> [0. 0. 1. 0.] 101 : [0. 1. 1. 0. 0. 1. 0. 1.] --> [0. 0. 1. 1.] 102 : [0. 1. 1. 0. 0. 1. 1. 0.] --> [0. 0. 0. 0.] 103 : [0. 1. 1. 0. 0. 1. 1. 1.] --> [0. 0. 0. 1.] 104 : [0. 1. 1. 0. 1. 0. 0. 0.] --> [1. 1. 1. 0.] 105 : [0. 1. 1. 0. 1. 0. 0. 1.] --> [1. 1. 1. 1.] 106 : [0. 1. 1. 0. 1. 0. 1. 0.] --> [1. 1. 0. 0.] 107 : [0. 1. 1. 0. 1. 0. 1. 1.] --> [1. 1. 0. 1.] 108 : [0. 1. 1. 0. 1. 1. 0. 0.] --> [1. 0. 1. 0.] 109 : [0. 1. 1. 0. 1. 1. 0. 1.] --> [1. 0. 1. 1.] 110 : [0. 1. 1. 0. 1. 1. 1. 0.] --> [1. 0. 0. 0.] 111 : [0. 1. 1. 0. 1. 1. 1. 1.] --> [1. 0. 0. 1.] 112 : [0. 1. 1. 1. 0. 0. 0. 0.] --> [1. 0. 0. 0.] 113 : [0. 1. 1. 1. 0. 0. 0. 1.] --> [1. 0. 0. 1.] 114 : [0. 1. 1. 1. 0. 0. 1. 0.] --> [1. 0. 1. 0.] 115 : [0. 1. 1. 1. 0. 0. 1. 1.] --> [1. 0. 1. 1.] 116 : [0. 1. 1. 1. 0. 1. 0. 0.] --> [1. 1. 0. 0.] 117 : [0. 1. 1. 1. 0. 1. 0. 1.] --> [1. 1. 0. 1.] 118 : [0. 1. 1. 1. 0. 1. 1. 0.] --> [1. 1. 1. 0.] 119 : [0. 1. 1. 1. 0. 1. 1. 1.] --> [1. 1. 1. 1.] 120 : [0. 1. 1. 1. 1. 0. 0. 0.] --> [0. 0. 0. 0.] 121 : [0. 1. 1. 1. 1. 0. 0. 1.] --> [0. 0. 0. 1.] 122 : [0. 1. 1. 1. 1. 0. 1. 0.] --> [0. 0. 1. 0.] 123 : [0. 1. 1. 1. 1. 0. 1. 1.] --> [0. 0. 1. 1.] 124 : [0. 1. 1. 1. 1. 1. 0. 0.] --> [0. 1. 0. 0.] 125 : [0. 1. 1. 1. 1. 1. 0. 1.] --> [0. 1. 0. 1.] 126 : [0. 1. 1. 1. 1. 1. 1. 0.] --> [0. 1. 1. 0.] 127 : [0. 1. 1. 1. 1. 1. 1. 1.] --> [0. 1. 1. 1.] 128 : [1. 0. 0. 0. 0. 0. 0. 0.] --> [0. 1. 1. 1.] 129 : [1. 0. 0. 0. 0. 0. 0. 1.] --> [0. 1. 1. 0.] 130 : [1. 0. 0. 0. 0. 0. 1. 0.] --> [0. 1. 0. 1.] 131 : [1. 0. 0. 0. 0. 0. 1. 1.] --> [0. 1. 0. 0.] 132 : [1. 0. 0. 0. 0. 1. 0. 0.] --> [0. 0. 1. 1.] 133 : [1. 0. 0. 0. 0. 1. 0. 1.] --> [0. 0. 1. 0.] 134 : [1. 0. 0. 0. 0. 1. 1. 0.] --> [0. 0. 0. 1.] 135 : [1. 0. 0. 0. 0. 1. 1. 1.] --> [0. 0. 0. 0.] 136 : [1. 0. 0. 0. 1. 0. 0. 0.] --> [1. 1. 1. 1.] 137 : [1. 0. 0. 0. 1. 0. 0. 1.] --> [1. 1. 1. 0.] 138 : [1. 0. 0. 0. 1. 0. 1. 0.] --> [1. 1. 0. 1.] 139 : [1. 0. 0. 0. 1. 0. 1. 1.] --> [1. 1. 0. 0.] 140 : [1. 0. 0. 0. 1. 1. 0. 0.] --> [1. 0. 1. 1.] 141 : [1. 0. 0. 0. 1. 1. 0. 1.] --> [1. 0. 1. 0.] 142 : [1. 0. 0. 0. 1. 1. 1. 0.] --> [1. 0. 0. 1.] 143 : [1. 0. 0. 0. 1. 1. 1. 1.] --> [1. 0. 0. 0.] 144 : [1. 0. 0. 1. 0. 0. 0. 0.] --> [1. 0. 0. 1.] 145 : [1. 0. 0. 1. 0. 0. 0. 1.] --> [1. 0. 0. 0.] 146 : [1. 0. 0. 1. 0. 0. 1. 0.] --> [1. 0. 1. 1.] 147 : [1. 0. 0. 1. 0. 0. 1. 1.] --> [1. 0. 1. 0.] 148 : [1. 0. 0. 1. 0. 1. 0. 0.] --> [1. 1. 0. 1.] 149 : [1. 0. 0. 1. 0. 1. 0. 1.] --> [1. 1. 0. 0.] 150 : [1. 0. 0. 1. 0. 1. 1. 0.] --> [1. 1. 1. 1.] 151 : [1. 0. 0. 1. 0. 1. 1. 1.] --> [1. 1. 1. 0.] 152 : [1. 0. 0. 1. 1. 0. 0. 0.] --> [0. 0. 0. 1.] 153 : [1. 0. 0. 1. 1. 0. 0. 1.] --> [0. 0. 0. 0.] 154 : [1. 0. 0. 1. 1. 0. 1. 0.] --> [0. 0. 1. 1.] 155 : [1. 0. 0. 1. 1. 0. 1. 1.] --> [0. 0. 1. 0.] 156 : [1. 0. 0. 1. 1. 1. 0. 0.] --> [0. 1. 0. 1.] 157 : [1. 0. 0. 1. 1. 1. 0. 1.] --> [0. 1. 0. 0.] 158 : [1. 0. 0. 1. 1. 1. 1. 0.] --> [0. 1. 1. 1.] 159 : [1. 0. 0. 1. 1. 1. 1. 1.] --> [0. 1. 1. 0.] 160 : [1. 0. 1. 0. 0. 0. 0. 0.] --> [1. 0. 1. 0.] 161 : [1. 0. 1. 0. 0. 0. 0. 1.] --> [1. 0. 1. 1.] 162 : [1. 0. 1. 0. 0. 0. 1. 0.] --> [1. 0. 0. 0.] 163 : [1. 0. 1. 0. 0. 0. 1. 1.] --> [1. 0. 0. 1.] 164 : [1. 0. 1. 0. 0. 1. 0. 0.] --> [1. 1. 1. 0.] 165 : [1. 0. 1. 0. 0. 1. 0. 1.] --> [1. 1. 1. 1.] 166 : [1. 0. 1. 0. 0. 1. 1. 0.] --> [1. 1. 0. 0.] 167 : [1. 0. 1. 0. 0. 1. 1. 1.] --> [1. 1. 0. 1.] 168 : [1. 0. 1. 0. 1. 0. 0. 0.] --> [0. 0. 1. 0.] 169 : [1. 0. 1. 0. 1. 0. 0. 1.] --> [0. 0. 1. 1.] 170 : [1. 0. 1. 0. 1. 0. 1. 0.] --> [0. 0. 0. 0.] 171 : [1. 0. 1. 0. 1. 0. 1. 1.] --> [0. 0. 0. 1.] 172 : [1. 0. 1. 0. 1. 1. 0. 0.] --> [0. 1. 1. 0.] 173 : [1. 0. 1. 0. 1. 1. 0. 1.] --> [0. 1. 1. 1.] 174 : [1. 0. 1. 0. 1. 1. 1. 0.] --> [0. 1. 0. 0.] 175 : [1. 0. 1. 0. 1. 1. 1. 1.] --> [0. 1. 0. 1.] 176 : [1. 0. 1. 1. 0. 0. 0. 0.] --> [0. 1. 0. 0.] 177 : [1. 0. 1. 1. 0. 0. 0. 1.] --> [0. 1. 0. 1.] 178 : [1. 0. 1. 1. 0. 0. 1. 0.] --> [0. 1. 1. 0.] 179 : [1. 0. 1. 1. 0. 0. 1. 1.] --> [0. 1. 1. 1.] 180 : [1. 0. 1. 1. 0. 1. 0. 0.] --> [0. 0. 0. 0.] 181 : [1. 0. 1. 1. 0. 1. 0. 1.] --> [0. 0. 0. 1.] 182 : [1. 0. 1. 1. 0. 1. 1. 0.] --> [0. 0. 1. 0.] 183 : [1. 0. 1. 1. 0. 1. 1. 1.] --> [0. 0. 1. 1.] 184 : [1. 0. 1. 1. 1. 0. 0. 0.] --> [1. 1. 0. 0.] 185 : [1. 0. 1. 1. 1. 0. 0. 1.] --> [1. 1. 0. 1.] 186 : [1. 0. 1. 1. 1. 0. 1. 0.] --> [1. 1. 1. 0.] 187 : [1. 0. 1. 1. 1. 0. 1. 1.] --> [1. 1. 1. 1.] 188 : [1. 0. 1. 1. 1. 1. 0. 0.] --> [1. 0. 0. 0.] 189 : [1. 0. 1. 1. 1. 1. 0. 1.] --> [1. 0. 0. 1.] 190 : [1. 0. 1. 1. 1. 1. 1. 0.] --> [1. 0. 1. 0.] 191 : [1. 0. 1. 1. 1. 1. 1. 1.] --> [1. 0. 1. 1.] 192 : [1. 1. 0. 0. 0. 0. 0. 0.] --> [1. 1. 0. 0.] 193 : [1. 1. 0. 0. 0. 0. 0. 1.] --> [1. 1. 0. 1.] 194 : [1. 1. 0. 0. 0. 0. 1. 0.] --> [1. 1. 1. 0.] 195 : [1. 1. 0. 0. 0. 0. 1. 1.] --> [1. 1. 1. 1.] 196 : [1. 1. 0. 0. 0. 1. 0. 0.] --> [1. 0. 0. 0.] 197 : [1. 1. 0. 0. 0. 1. 0. 1.] --> [1. 0. 0. 1.] 198 : [1. 1. 0. 0. 0. 1. 1. 0.] --> [1. 0. 1. 0.] 199 : [1. 1. 0. 0. 0. 1. 1. 1.] --> [1. 0. 1. 1.] 200 : [1. 1. 0. 0. 1. 0. 0. 0.] --> [0. 1. 0. 0.] 201 : [1. 1. 0. 0. 1. 0. 0. 1.] --> [0. 1. 0. 1.] 202 : [1. 1. 0. 0. 1. 0. 1. 0.] --> [0. 1. 1. 0.] 203 : [1. 1. 0. 0. 1. 0. 1. 1.] --> [0. 1. 1. 1.] 204 : [1. 1. 0. 0. 1. 1. 0. 0.] --> [0. 0. 0. 0.] 205 : [1. 1. 0. 0. 1. 1. 0. 1.] --> [0. 0. 0. 1.] 206 : [1. 1. 0. 0. 1. 1. 1. 0.] --> [0. 0. 1. 0.] 207 : [1. 1. 0. 0. 1. 1. 1. 1.] --> [0. 0. 1. 1.] 208 : [1. 1. 0. 1. 0. 0. 0. 0.] --> [0. 0. 1. 0.] 209 : [1. 1. 0. 1. 0. 0. 0. 1.] --> [0. 0. 1. 1.] 210 : [1. 1. 0. 1. 0. 0. 1. 0.] --> [0. 0. 0. 0.] 211 : [1. 1. 0. 1. 0. 0. 1. 1.] --> [0. 0. 0. 1.] 212 : [1. 1. 0. 1. 0. 1. 0. 0.] --> [0. 1. 1. 0.] 213 : [1. 1. 0. 1. 0. 1. 0. 1.] --> [0. 1. 1. 1.] 214 : [1. 1. 0. 1. 0. 1. 1. 0.] --> [0. 1. 0. 0.] 215 : [1. 1. 0. 1. 0. 1. 1. 1.] --> [0. 1. 0. 1.] 216 : [1. 1. 0. 1. 1. 0. 0. 0.] --> [1. 0. 1. 0.] 217 : [1. 1. 0. 1. 1. 0. 0. 1.] --> [1. 0. 1. 1.] 218 : [1. 1. 0. 1. 1. 0. 1. 0.] --> [1. 0. 0. 0.] 219 : [1. 1. 0. 1. 1. 0. 1. 1.] --> [1. 0. 0. 1.] 220 : [1. 1. 0. 1. 1. 1. 0. 0.] --> [1. 1. 1. 0.] 221 : [1. 1. 0. 1. 1. 1. 0. 1.] --> [1. 1. 1. 1.] 222 : [1. 1. 0. 1. 1. 1. 1. 0.] --> [1. 1. 0. 0.] 223 : [1. 1. 0. 1. 1. 1. 1. 1.] --> [1. 1. 0. 1.] 224 : [1. 1. 1. 0. 0. 0. 0. 0.] --> [0. 0. 0. 1.] 225 : [1. 1. 1. 0. 0. 0. 0. 1.] --> [0. 0. 0. 0.] 226 : [1. 1. 1. 0. 0. 0. 1. 0.] --> [0. 0. 1. 1.] 227 : [1. 1. 1. 0. 0. 0. 1. 1.] --> [0. 0. 1. 0.] 228 : [1. 1. 1. 0. 0. 1. 0. 0.] --> [0. 1. 0. 1.] 229 : [1. 1. 1. 0. 0. 1. 0. 1.] --> [0. 1. 0. 0.] 230 : [1. 1. 1. 0. 0. 1. 1. 0.] --> [0. 1. 1. 1.] 231 : [1. 1. 1. 0. 0. 1. 1. 1.] --> [0. 1. 1. 0.] 232 : [1. 1. 1. 0. 1. 0. 0. 0.] --> [1. 0. 0. 1.] 233 : [1. 1. 1. 0. 1. 0. 0. 1.] --> [1. 0. 0. 0.] 234 : [1. 1. 1. 0. 1. 0. 1. 0.] --> [1. 0. 1. 1.] 235 : [1. 1. 1. 0. 1. 0. 1. 1.] --> [1. 0. 1. 0.] 236 : [1. 1. 1. 0. 1. 1. 0. 0.] --> [1. 1. 0. 1.] 237 : [1. 1. 1. 0. 1. 1. 0. 1.] --> [1. 1. 0. 0.] 238 : [1. 1. 1. 0. 1. 1. 1. 0.] --> [1. 1. 1. 1.] 239 : [1. 1. 1. 0. 1. 1. 1. 1.] --> [1. 1. 1. 0.] 240 : [1. 1. 1. 1. 0. 0. 0. 0.] --> [1. 1. 1. 1.] 241 : [1. 1. 1. 1. 0. 0. 0. 1.] --> [1. 1. 1. 0.] 242 : [1. 1. 1. 1. 0. 0. 1. 0.] --> [1. 1. 0. 1.] 243 : [1. 1. 1. 1. 0. 0. 1. 1.] --> [1. 1. 0. 0.] 244 : [1. 1. 1. 1. 0. 1. 0. 0.] --> [1. 0. 1. 1.] 245 : [1. 1. 1. 1. 0. 1. 0. 1.] --> [1. 0. 1. 0.] 246 : [1. 1. 1. 1. 0. 1. 1. 0.] --> [1. 0. 0. 1.] 247 : [1. 1. 1. 1. 0. 1. 1. 1.] --> [1. 0. 0. 0.] 248 : [1. 1. 1. 1. 1. 0. 0. 0.] --> [0. 1. 1. 1.] 249 : [1. 1. 1. 1. 1. 0. 0. 1.] --> [0. 1. 1. 0.] 250 : [1. 1. 1. 1. 1. 0. 1. 0.] --> [0. 1. 0. 1.] 251 : [1. 1. 1. 1. 1. 0. 1. 1.] --> [0. 1. 0. 0.] 252 : [1. 1. 1. 1. 1. 1. 0. 0.] --> [0. 0. 1. 1.] 253 : [1. 1. 1. 1. 1. 1. 0. 1.] --> [0. 0. 1. 0.] 254 : [1. 1. 1. 1. 1. 1. 1. 0.] --> [0. 0. 0. 1.] 255 : [1. 1. 1. 1. 1. 1. 1. 1.] --> [0. 0. 0. 0.] hamming84_r_test(): hamming84_r() returns the Hamming R84 matrix. Multiplying a codeword by R84 gives the original message. Exponent R = 3 Block length N = 2**R = 8 Message length K = 2**R - R - 1 = 4 I Message Codeword Message 0 : [0. 0. 0. 0.] --> [0. 0. 0. 0. 0. 0. 0. 0.] --> [0. 0. 0. 0.] 1 : [0. 0. 0. 1.] --> [0. 0. 0. 1. 1. 1. 1. 0.] --> [0. 0. 0. 1.] 2 : [0. 0. 1. 0.] --> [0. 0. 1. 0. 1. 1. 0. 1.] --> [0. 0. 1. 0.] 3 : [0. 0. 1. 1.] --> [0. 0. 1. 1. 0. 0. 1. 1.] --> [0. 0. 1. 1.] 4 : [0. 1. 0. 0.] --> [0. 1. 0. 0. 1. 0. 1. 1.] --> [0. 1. 0. 0.] 5 : [0. 1. 0. 1.] --> [0. 1. 0. 1. 0. 1. 0. 1.] --> [0. 1. 0. 1.] 6 : [0. 1. 1. 0.] --> [0. 1. 1. 0. 0. 1. 1. 0.] --> [0. 1. 1. 0.] 7 : [0. 1. 1. 1.] --> [0. 1. 1. 1. 1. 0. 0. 0.] --> [0. 1. 1. 1.] 8 : [1. 0. 0. 0.] --> [1. 0. 0. 0. 0. 1. 1. 1.] --> [1. 0. 0. 0.] 9 : [1. 0. 0. 1.] --> [1. 0. 0. 1. 1. 0. 0. 1.] --> [1. 0. 0. 1.] 10 : [1. 0. 1. 0.] --> [1. 0. 1. 0. 1. 0. 1. 0.] --> [1. 0. 1. 0.] 11 : [1. 0. 1. 1.] --> [1. 0. 1. 1. 0. 1. 0. 0.] --> [1. 0. 1. 1.] 12 : [1. 1. 0. 0.] --> [1. 1. 0. 0. 1. 1. 0. 0.] --> [1. 1. 0. 0.] 13 : [1. 1. 0. 1.] --> [1. 1. 0. 1. 0. 0. 1. 0.] --> [1. 1. 0. 1.] 14 : [1. 1. 1. 0.] --> [1. 1. 1. 0. 0. 0. 0. 1.] --> [1. 1. 1. 0.] 15 : [1. 1. 1. 1.] --> [1. 1. 1. 1. 1. 1. 1. 1.] --> [1. 1. 1. 1.] hamming_test(): Normal end of execution. Wed Oct 12 21:12:52 2022