public function encode(SplFixedArray $data, SplFixedArray $parity) : void
    {
        for ($i = 0; $i < $this->numRoots; ++$i) {
            $parity[$i] = 0;
        }

        $iterations = $this->blockSize - $this->numRoots - $this->padding;

        for ($i = 0; $i < $iterations; ++$i) {
            $feedback = $this->indexOf[$data[$i] ^ $parity[0]];

            if ($feedback !== $this->blockSize) {
                // Feedback term is non-zero
                $feedback = $this->modNn($this->blockSize - $this->generatorPoly[$this->numRoots] + $feedback);

                for ($j = 1; $j < $this->numRoots; ++$j) {
                    $parity[$j] = $parity[$j] ^ $this->alphaTo[
                        $this->modNn($feedback + $this->generatorPoly[$this->numRoots - $j])
                    ];
                }
            }

            for ($j = 0; $j < $this->numRoots - 1; ++$j) {
                $parity[$j] = $parity[$j + 1];
            }

            if ($feedback !== $this->blockSize) {
                $parity[$this->numRoots - 1] = $this->alphaTo[$this->modNn($feedback + $this->generatorPoly[0])];
            } else {
                $parity[$this->numRoots - 1] = 0;
            }
        }
    }
public function encode(SplFixedArray $data, SplFixedArray $parity) : void
    {
        for ($i = 0; $i < $this->numRoots; ++$i) {
            $parity[$i] = 0;
        }

        $iterations = $this->blockSize - $this->numRoots - $this->padding;

        for ($i = 0; $i < $iterations; ++$i) {
            $feedback = $this->indexOf[$data[$i] ^ $parity[0]];

            if ($feedback !== $this->blockSize) {
                // Feedback term is non-zero
                $feedback = $this->modNn($this->blockSize - $this->generatorPoly[$this->numRoots] + $feedback);

                for ($j = 1; $j < $this->numRoots; ++$j) {
                    $parity[$j] = $parity[$j] ^ $this->alphaTo[
                        $this->modNn($feedback + $this->generatorPoly[$this->numRoots - $j])
                    ];
                }
            }

            for ($j = 0; $j < $this->numRoots - 1; ++$j) {
                $parity[$j] = $parity[$j + 1];
            }

            if ($feedback !== $this->blockSize) {
                $parity[$this->numRoots - 1] = $this->alphaTo[$this->modNn($feedback + $this->generatorPoly[0])];
            } else {
                $parity[$this->numRoots - 1] = 0;
            }
        }
    }
public function encode ( SplFixedArray $ data , SplFixedArray $ parity ) : void { for ( $ i = 0 ; $ i < $ this -> numRoots ; ++ $ i ) { $ parity [ $ i ] = 0 ; } $ iterations = $ this -> blockSize - $ this -> numRoots - $ this -> padding ; for ( $ i = 0 ; $ i < $ iterations ; ++ $ i ) { $ feedback = $ this -> indexOf [ $ data [ $ i ] ^ $ parity [ 0 ] ] ; if ( $ feedback !== $ this -> blockSize ) { // Feedback term is non-zero $ feedback = $ this -> modNn ( $ this -> blockSize - $ this -> generatorPoly [ $ this -> numRoots ] + $ feedback ) ; for ( $ j = 1 ; $ j < $ this -> numRoots ; ++ $ j ) { $ parity [ $ j ] = $ parity [ $ j ] ^ $ this -> alphaTo [ $ this -> modNn ( $ feedback + $ this -> generatorPoly [ $ this -> numRoots - $ j ] ) ] ; } } for ( $ j = 0 ; $ j < $ this -> numRoots - 1 ; ++ $ j ) { $ parity [ $ j ] = $ parity [ $ j + 1 ] ; } if ( $ feedback !== $ this -> blockSize ) { $ parity [ $ this -> numRoots - 1 ] = $ this -> alphaTo [ $ this -> modNn ( $ feedback + $ this -> generatorPoly [ 0 ] ) ] ; } else { $ parity [ $ this -> numRoots - 1 ] = 0 ; } } }
Encodes data and writes result back into parity array.
Encodes data and writes result back into parity array .