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)
|
static bool conv(int *state, bool input)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
bool b1 = (*state >> 1) & 1;
|
bool b1 = (*state >> 1) & 1;
|
||||||
bool b3 = (*state >> 3) & 1;
|
bool b3 = (*state >> 3) & 1;
|
||||||
bool b4 = (*state >> 4) & 1;
|
bool b4 = (*state >> 4) & 1;
|
||||||
bool b6 = (*state >> 6) & 1;
|
bool b6 = (*state >> 6) & 1;
|
||||||
bool output = input ^ b1 ^ b3 ^ b4 ^ b6;
|
bool output = input ^ b1 ^ b3 ^ b4 ^ b6;
|
||||||
*state = ((*state & 126) << 1) | (input ? 2 : 0) | (output ? 1 : 0);
|
*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;
|
return output;
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,19 @@ struct PACListLeaf
|
||||||
typedef typename PH::MAP MAP;
|
typedef typename PH::MAP MAP;
|
||||||
static bool conv(int *state, bool input)
|
static bool conv(int *state, bool input)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
bool b1 = (*state >> 1) & 1;
|
bool b1 = (*state >> 1) & 1;
|
||||||
bool b3 = (*state >> 3) & 1;
|
bool b3 = (*state >> 3) & 1;
|
||||||
bool b4 = (*state >> 4) & 1;
|
bool b4 = (*state >> 4) & 1;
|
||||||
bool b6 = (*state >> 6) & 1;
|
bool b6 = (*state >> 6) & 1;
|
||||||
bool output = input ^ b1 ^ b3 ^ b4 ^ b6;
|
bool output = input ^ b1 ^ b3 ^ b4 ^ b6;
|
||||||
*state = ((*state & 126) << 1) | (input ? 2 : 0) | (output ? 1 : 0);
|
*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;
|
return output;
|
||||||
}
|
}
|
||||||
static MAP rate0(PATH *metric, int *state, TYPE *hard, TYPE *soft)
|
static MAP rate0(PATH *metric, int *state, TYPE *hard, TYPE *soft)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue