07-Jan-2022 21:38:17 hamming_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 Test hamming() UI4_TO_UBVEC_TEST UI4_TO_UBVEC converts an unsigned integer to an unsigned binary vector; UI4 --> UBVEC 834 1101000010 927 1110011111 130 0010000010 935 1110100111 647 1010000111 99 0001100011 285 0100011101 560 1000110000 980 1111010100 988 1111011100 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 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 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. 07-Jan-2022 21:38:18