From 10e1162d0e0308fdcf883e8e5089e4d01b79bb25 Mon Sep 17 00:00:00 2001 From: smiley Date: Tue, 10 May 2022 13:20:47 +0200 Subject: [PATCH] :shower: simplified --- src/Common/ReedSolomonDecoder.php | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/Common/ReedSolomonDecoder.php b/src/Common/ReedSolomonDecoder.php index 1bed016ba..3762c7011 100644 --- a/src/Common/ReedSolomonDecoder.php +++ b/src/Common/ReedSolomonDecoder.php @@ -12,7 +12,7 @@ namespace chillerlan\QRCode\Common; use RuntimeException; -use function array_fill, count; +use function array_fill, array_reverse, count; /** * Implements Reed-Solomon decoding, as the name implies. @@ -48,24 +48,23 @@ final class ReedSolomonDecoder{ public function decode(array $received, int $numEccCodewords):array{ $poly = new GenericGFPoly($received); $syndromeCoefficients = []; - $noError = true; + $error = false; - for($i = 0, $j = $numEccCodewords - 1; $i < $numEccCodewords; $i++, $j--){ - $eval = $poly->evaluateAt(GF256::exp($i)); - $syndromeCoefficients[$j] = $eval; + for($i = 0; $i < $numEccCodewords; $i++){ + $syndromeCoefficients[$i] = $poly->evaluateAt(GF256::exp($i)); - if($eval !== 0){ - $noError = false; + if($syndromeCoefficients[$i] !== 0){ + $error = true; } } - if($noError){ + if(!$error){ return $received; } [$sigma, $omega] = $this->runEuclideanAlgorithm( GF256::buildMonomial($numEccCodewords, 1), - new GenericGFPoly($syndromeCoefficients), + new GenericGFPoly(array_reverse($syndromeCoefficients)), $numEccCodewords );