From ba75e9e40edb44f30efd9d0b7ffa61accc8d70bf Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Tue, 23 Dec 2025 17:14:47 +0100 Subject: [PATCH] let's try the recursive scrambler again --- pac_encoder.hh | 7 +++++++ pac_list_decoder.hh | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/pac_encoder.hh b/pac_encoder.hh index d2f63ee..c3ab9c0 100644 --- a/pac_encoder.hh +++ b/pac_encoder.hh @@ -20,12 +20,19 @@ class PACEncoder } static bool conv(int *state, bool input) { +#if 0 bool b1 = (*state >> 1) & 1; bool b3 = (*state >> 3) & 1; bool b4 = (*state >> 4) & 1; bool b6 = (*state >> 6) & 1; bool output = input ^ b1 ^ b3 ^ b4 ^ b6; *state = ((*state & 126) << 1) | (input ? 2 : 0) | (output ? 1 : 0); +#else + bool s1 = *state & 1; + bool s2 = *state & 2; + bool output = input ^ s1 ^ s2; + *state = (s1 << 1) | output; +#endif return output; } public: diff --git a/pac_list_decoder.hh b/pac_list_decoder.hh index 10dd82f..2e55df5 100644 --- a/pac_list_decoder.hh +++ b/pac_list_decoder.hh @@ -19,12 +19,19 @@ struct PACListLeaf typedef typename PH::MAP MAP; static bool conv(int *state, bool input) { +#if 0 bool b1 = (*state >> 1) & 1; bool b3 = (*state >> 3) & 1; bool b4 = (*state >> 4) & 1; bool b6 = (*state >> 6) & 1; bool output = input ^ b1 ^ b3 ^ b4 ^ b6; *state = ((*state & 126) << 1) | (input ? 2 : 0) | (output ? 1 : 0); +#else + bool s1 = *state & 1; + bool s2 = *state & 2; + bool output = input ^ s1 ^ s2; + *state = (s1 << 1) | output; +#endif return output; } static MAP rate0(PATH *metric, int *state, TYPE *hard, TYPE *soft)