import torch from safetensors.torch import load_file def load_model(path='model.safetensors'): return load_file(path) def parity7(bits): """7-bit XOR (parity).""" result = 0 for b in bits: result ^= b return result def hamming1511_encode_ref(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11): """Reference encoder (not using threshold weights).""" p1 = parity7([d1, d2, d4, d5, d7, d9, d11]) p2 = parity7([d1, d3, d4, d6, d7, d10, d11]) p4 = parity7([d2, d3, d4, d8, d9, d10, d11]) p8 = parity7([d5, d6, d7, d8, d9, d10, d11]) return [p1, p2, d1, p4, d2, d3, d4, p8, d5, d6, d7, d8, d9, d10, d11] if __name__ == '__main__': print('Hamming(15,11) Encoder') print('11 data bits -> 15 coded bits (4 parity + 11 data)') print() print('Bit positions: p1,p2,d1,p4,d2,d3,d4,p8,d5,d6,d7,d8,d9,d10,d11') print() print('Examples:') for i in range(8): bits = [(i >> j) & 1 for j in range(11)] encoded = hamming1511_encode_ref(*bits) data_str = ''.join(map(str, bits)) enc_str = ''.join(map(str, encoded)) print(f' {data_str} -> {enc_str}')