From cfffac5010f78de3962d20bed7a3aa66d279e1a7 Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Sun, 23 Sep 2018 11:32:41 +0200 Subject: [PATCH] speed up the shift a bit --- bose_chaudhuri_hocquenghem_encoder.hh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bose_chaudhuri_hocquenghem_encoder.hh b/bose_chaudhuri_hocquenghem_encoder.hh index f3d1a85..eca7033 100644 --- a/bose_chaudhuri_hocquenghem_encoder.hh +++ b/bose_chaudhuri_hocquenghem_encoder.hh @@ -61,9 +61,11 @@ 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 = 1; j < NP; ++j) - set_be_bit(code, K+j-1, get_be_bit(code, K+j)); - set_be_bit(code, N-1, 0); + 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) + code[l] = (code[l]<<1) | (code[l+1]>>7); + code[(N-1)/8] <<= 1; } } }