From 4b7006651e677cf558b2ebbe0b65df56ad501d24 Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Sun, 23 Sep 2018 17:13:05 +0200 Subject: [PATCH] also speed up the shifting of the mixed byte --- bose_chaudhuri_hocquenghem_encoder.hh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bose_chaudhuri_hocquenghem_encoder.hh b/bose_chaudhuri_hocquenghem_encoder.hh index eca7033..a899255 100644 --- a/bose_chaudhuri_hocquenghem_encoder.hh +++ b/bose_chaudhuri_hocquenghem_encoder.hh @@ -61,9 +61,9 @@ public: set_be_bit(code, K+j-1, get_le_bit(generator, NP-j) != get_be_bit(code, K+j)); set_be_bit(code, N-1, get_le_bit(generator, 0)); } else { - for (int j = K; j < 8*((K+7)/8); ++j) - set_be_bit(code, j, get_be_bit(code, j+1)); - for (int l = (K+7)/8; l < (N-1)/8; ++l) + uint8_t mask = (1<<(8-K%8))-1; + code[K/8] = (~mask&code[K/8]) | (mask&((code[K/8]<<1)|(code[K/8+1]>>7))); + for (int l = K/8+1; l < (N-1)/8; ++l) code[l] = (code[l]<<1) | (code[l+1]>>7); code[(N-1)/8] <<= 1; }