From a10cc6afcbb005e45aa2393214127442e34d112c Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Mon, 23 Sep 2019 14:12:14 +0200 Subject: [PATCH] disable OMS code path if BETA is zero --- ldpc_decoder.hh | 9 +++++++-- ldpc_decoder2.hh | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ldpc_decoder.hh b/ldpc_decoder.hh index 577f150..8303819 100644 --- a/ldpc_decoder.hh +++ b/ldpc_decoder.hh @@ -66,10 +66,15 @@ class LDPCDecoder } static void cnp(TYPE *out, const TYPE *inp, int cnt) { - auto beta = vunsigned(vdup(BETA)); TYPE mags[cnt]; for (int i = 0; i < cnt; ++i) - mags[i] = vsigned(vqsub(vunsigned(vqabs(inp[i])), beta)); + mags[i] = vqabs(inp[i]); + + if (BETA) { + auto beta = vunsigned(vdup(BETA)); + for (int i = 0; i < cnt; ++i) + mags[i] = vsigned(vqsub(vunsigned(mags[i]), beta)); + } TYPE mins[2]; mins[0] = vmin(mags[0], mags[1]); diff --git a/ldpc_decoder2.hh b/ldpc_decoder2.hh index f3bb076..29aea52 100644 --- a/ldpc_decoder2.hh +++ b/ldpc_decoder2.hh @@ -68,10 +68,15 @@ class LDPCDecoder } static void cnp(TYPE *out, const TYPE *inp, int cnt) { - auto beta = vunsigned(vdup(BETA)); TYPE mags[cnt]; for (int i = 0; i < cnt; ++i) - mags[i] = vsigned(vqsub(vunsigned(vqabs(inp[i])), beta)); + mags[i] = vqabs(inp[i]); + + if (BETA) { + auto beta = vunsigned(vdup(BETA)); + for (int i = 0; i < cnt; ++i) + mags[i] = vsigned(vqsub(vunsigned(mags[i]), beta)); + } TYPE mins[2]; mins[0] = vmin(mags[0], mags[1]);