diff --git a/DAS/block.py b/DAS/block.py index 5c09ca1..3119167 100644 --- a/DAS/block.py +++ b/DAS/block.py @@ -1,31 +1,27 @@ #!/bin/python3 import random +from bitarray import bitarray +from bitarray.util import zeros class Block: blockSize = 0 - data = [] + data = bitarray() def __init__(self, size): self.blockSize = size - self.data = [0] * (self.blockSize*self.blockSize) + self.data = zeros(self.blockSize*self.blockSize) def fill(self): for i in range(self.blockSize*self.blockSize): - self.data[i] = random.randint(1, 9) + self.data[i] = 1 def getColumn(self, columnID): - column = [0] * self.blockSize - for i in range(self.blockSize): - column[i] = self.data[(i*self.blockSize)+columnID] - return column + return self.data[columnID::self.blockSize] def getRow(self, rowID): - row = [0] * self.blockSize - for i in range(self.blockSize): - row[i] = self.data[(rowID*self.blockSize)+i] - return row + return self.data[rowID*self.blockSize:(rowID+1)*self.blockSize] def print(self): dash = "-" * (self.blockSize+2) diff --git a/DAS/validator.py b/DAS/validator.py index bfe0adb..a570e88 100644 --- a/DAS/validator.py +++ b/DAS/validator.py @@ -2,6 +2,8 @@ import random from DAS.block import * +from bitarray import bitarray +from bitarray.util import zeros class Validator: @@ -87,15 +89,10 @@ class Validator: self.getColumn(c, broadcasted) def sendColumn(self, c, columnID, broadcasted): - column = [0] * self.blockSize - for i in range(self.blockSize): - if broadcasted.data[(i*self.blockSize)+columnID] == 0: - broadcasted.data[(i*self.blockSize)+columnID] = self.columns[c][i] + broadcasted.data[columnID::self.blockSize] |= self.columns[c] def sendRow(self, r, rowID, broadcasted): - for i in range(self.blockSize): - if broadcasted.data[(rowID*self.blockSize)+i] == 0: - broadcasted.data[(rowID*self.blockSize)+i] = self.rows[r][i] + broadcasted.data[rowID*self.blockSize:(rowID+1)*self.blockSize] |= self.rows[r] def sendRows(self, broadcasted): if self.proposer == 1: