keep ranges symmetric

This commit is contained in:
Ahmet Inan 2024-02-10 19:46:25 +01:00
commit 7e589c85ef
7 changed files with 10 additions and 10 deletions

View file

@ -172,7 +172,7 @@ struct PolarHelper<int8_t>
template <typename IN>
static int8_t quant(IN in)
{
return std::min<IN>(std::max<IN>(std::nearbyint(in), -128), 127);
return std::min<IN>(std::max<IN>(std::nearbyint(in), -127), 127);
}
static int8_t qabs(int8_t a)
{
@ -184,11 +184,11 @@ struct PolarHelper<int8_t>
}
static int8_t qadd(int8_t a, int8_t b)
{
return std::min<int16_t>(std::max<int16_t>(int16_t(a) + int16_t(b), -128), 127);
return std::min<int16_t>(std::max<int16_t>(int16_t(a) + int16_t(b), -127), 127);
}
static int8_t qmul(int8_t a, int8_t b)
{
// return std::min<int16_t>(std::max<int16_t>(int16_t(a) * int16_t(b), -128), 127);
// return std::min<int16_t>(std::max<int16_t>(int16_t(a) * int16_t(b), -127), 127);
// only used for hard decision values anyway
return a * b;
}
@ -198,7 +198,7 @@ struct PolarHelper<int8_t>
}
static int8_t madd(int8_t a, int8_t b, int8_t c)
{
return std::min<int16_t>(std::max<int16_t>(int16_t(a) * int16_t(b) + int16_t(c), -128), 127);
return std::min<int16_t>(std::max<int16_t>(int16_t(a) * int16_t(b) + int16_t(c), -127), 127);
}
};

View file

@ -98,7 +98,7 @@ int main()
float DIST = 2; // BPSK
float fact = DIST / (sigma_noise * sigma_noise);
for (int i = 0; i < CODE_LEN; ++i)
code[i] = std::min<float>(std::max<float>(std::nearbyint(fact * symb[i]), -128), 127);
code[i] = std::min<float>(std::max<float>(std::nearbyint(fact * symb[i]), -127), 127);
for (int i = 0; i < CODE_LEN; ++i)
noisy[i] = code[i];

View file

@ -579,7 +579,7 @@ int main()
float DIST = 2; // BPSK
float fact = DIST * FACTOR / (sigma_noise * sigma_noise);
for (int i = 0; i < CODE_LEN; ++i)
code[i] = std::min<float>(std::max<float>(std::nearbyint(fact * symb[i]), -128), 127);
code[i] = std::min<float>(std::max<float>(std::nearbyint(fact * symb[i]), -127), 127);
for (int i = 0; i < CODE_LEN; ++i)
noisy[i] = code[i];

View file

@ -112,7 +112,7 @@ int main()
double DIST = 2; // BPSK
double fact = DIST / (sigma_noise * sigma_noise);
for (int i = 0; i < N; ++i)
noisy[i] = std::min<double>(std::max<double>(std::nearbyint(fact * symb[i]), -128), 127);
noisy[i] = std::min<double>(std::max<double>(std::nearbyint(fact * symb[i]), -127), 127);
bool unique = osddec(decoded, noisy, genmat);

View file

@ -115,7 +115,7 @@ int main()
double DIST = 2; // BPSK
double fact = DIST / (sigma_noise * sigma_noise);
for (int i = 0; i < N; ++i)
noisy[i] = std::min<double>(std::max<double>(std::nearbyint(fact * symb[i]), -128), 127);
noisy[i] = std::min<double>(std::max<double>(std::nearbyint(fact * symb[i]), -127), 127);
osddec(rank, decoded, noisy, genmat);
bool unique = rank[0] != rank[1];

View file

@ -98,7 +98,7 @@ int main()
float DIST = 2; // BPSK
float fact = DIST / (sigma_noise * sigma_noise);
for (int i = 0; i < CODE_LEN; ++i)
code[i] = std::min<float>(std::max<float>(std::nearbyint(fact * symb[i]), -128), 127);
code[i] = std::min<float>(std::max<float>(std::nearbyint(fact * symb[i]), -127), 127);
for (int i = 0; i < CODE_LEN; ++i)
noisy[i] = code[i];

View file

@ -107,7 +107,7 @@ int main()
float DIST = 2; // BPSK
float fact = DIST / (sigma_noise * sigma_noise);
for (int i = 0; i < CODE_LEN; ++i)
code[i] = std::min<float>(std::max<float>(std::nearbyint(fact * symb[i]), -128), 127);
code[i] = std::min<float>(std::max<float>(std::nearbyint(fact * symb[i]), -127), 127);
for (int i = 0; i < CODE_LEN; ++i)
noisy[i] = code[i];