mirror of
https://github.com/aicodix/code.git
synced 2026-04-27 14:30:36 +00:00
let's try the recursive scrambler again
This commit is contained in:
parent
ed41a3b386
commit
ba75e9e40e
2 changed files with 14 additions and 0 deletions
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue