Implement simulate_error_rate.py
This commit is contained in:
29
python/hccd/utility.py
Normal file
29
python/hccd/utility.py
Normal file
@@ -0,0 +1,29 @@
|
||||
import numpy as np
|
||||
|
||||
|
||||
def _parse_alist_header(header):
|
||||
size = header.split()
|
||||
return int(size[0]), int(size[1])
|
||||
|
||||
|
||||
def read_alist_file(filename):
|
||||
"""
|
||||
This function reads in an alist file and creates the
|
||||
corresponding parity check matrix H. The format of alist
|
||||
files is described at:
|
||||
http://www.inference.phy.cam.ac.uk/mackay/codes/alist.html
|
||||
"""
|
||||
|
||||
with open(filename, 'r') as myfile:
|
||||
data = myfile.readlines()
|
||||
numCols, numRows = _parse_alist_header(data[0])
|
||||
|
||||
H = np.zeros((numRows, numCols))
|
||||
|
||||
# The locations of 1s starts in the 5th line of the file
|
||||
for lineNumber in np.arange(4, 4 + numCols):
|
||||
indices = data[lineNumber].split()
|
||||
for index in indices:
|
||||
H[int(index) - 1, lineNumber - 4] = 1
|
||||
|
||||
return H.astype(np.int32)
|
||||
Reference in New Issue
Block a user