From 14cdec54cb10d451124dc75b1581610ba9724278 Mon Sep 17 00:00:00 2001 From: Csaba Kiraly Date: Sat, 15 Jul 2023 02:19:07 +0200 Subject: [PATCH] fix N/K in error patterns Signed-off-by: Csaba Kiraly --- DAS/validator.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/DAS/validator.py b/DAS/validator.py index 2e8312b..2b489b8 100644 --- a/DAS/validator.py +++ b/DAS/validator.py @@ -139,40 +139,36 @@ class Validator: elif self.shape.failureModel == "MEP": # Minimal size non-recoverable Erasure Pattern for r in range(self.shape.blockSizeR): for c in range(self.shape.blockSizeC): - k = self.shape.blockSizeR/2 - if r > k or c > k: + if r > self.shape.blockSizeRK or c > self.shape.blockSizeCK: self.block.setSegment(r,c) elif self.shape.failureModel == "MEP+1": # MEP +1 segment to make it recoverable for r in range(self.shape.blockSizeR): for c in range(self.shape.blockSizeC): - k = self.shape.blockSizeR/2 - if r > k or c > k: + if r > self.shape.blockSizeRK or c > self.shape.blockSizeCK: self.block.setSegment(r,c) self.block.setSegment(0, 0) elif self.shape.failureModel == "DEP": + assert(self.shape.blockSizeR == self.shape.blockSizeC and self.shape.blockSizeRK == self.shape.blockSizeCK) for r in range(self.shape.blockSizeR): for c in range(self.shape.blockSizeC): - k = self.shape.blockSizeR/2 - if (r+c) % self.shape.blockSizeR > k: + if (r+c) % self.shape.blockSizeR > self.shape.blockSizeRK: self.block.setSegment(r,c) elif self.shape.failureModel == "DEP+1": + assert(self.shape.blockSizeR == self.shape.blockSizeC and self.shape.blockSizeRK == self.shape.blockSizeCK) for r in range(self.shape.blockSizeR): for c in range(self.shape.blockSizeC): - k = self.shape.blockSizeR/2 - if (r+c) % self.shape.blockSizeR > k: + if (r+c) % self.shape.blockSizeR > self.shape.blockSizeRK: self.block.setSegment(r,c) self.block.setSegment(0, 0) elif self.shape.failureModel == "MREP": # Minimum size Recoverable Erasure Pattern for r in range(self.shape.blockSizeR): for c in range(self.shape.blockSizeC): - k = self.shape.blockSizeR/2 - if r < k and c < k: + if r < self.shape.blockSizeRK or c < self.shape.blockSizeCK: self.block.setSegment(r,c) elif self.shape.failureModel == "MREP-1": # make MREP non-recoverable for r in range(self.shape.blockSizeR): for c in range(self.shape.blockSizeC): - k = self.shape.blockSizeR/2 - if r < k and c < k: + if r < self.shape.blockSizeRK or c < self.shape.blockSizeCK: self.block.setSegment(r,c) self.block.setSegment(0, 0, 0)