From db61300c46a342d7a409c010f6b1210f7a94cbe6 Mon Sep 17 00:00:00 2001 From: Csaba Kiraly Date: Tue, 20 Dec 2022 10:09:54 +0100 Subject: [PATCH] block: handle merge and repair Handle marge and row/column repair directly in the block data structure. Signed-off-by: Csaba Kiraly --- DAS/block.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/DAS/block.py b/DAS/block.py index 0ec24a4..76379d8 100644 --- a/DAS/block.py +++ b/DAS/block.py @@ -16,12 +16,31 @@ class Block: def fill(self): self.data.setall(1) + def merge(self, merged): + self.data |= merged.data + def getColumn(self, columnID): return self.data[columnID::self.blockSize] + def mergeColumn(self, columnID, column): + self.data[columnID::self.blockSize] |= column + + def repairColumn(self, id): + success = self.data[id::self.blockSize].count(1) + if success >= self.blockSize/2: + self.data[id::self.blockSize] = 1 + def getRow(self, rowID): return self.data[rowID*self.blockSize:(rowID+1)*self.blockSize] + def mergeRow(self, rowID, row): + self.data[rowID*self.blockSize:(rowID+1)*self.blockSize] |= row + + def repairRow(self, id): + success = self.data[id*self.blockSize:(id+1)*self.blockSize].count(1) + if success >= self.blockSize/2: + self.data[id*self.blockSize:(id+1)*self.blockSize] = 1 + def print(self): dash = "-" * (self.blockSize+2) print(dash)