Fix LDPC decoding accuracy
Description
This fixes Issue #4 (closed)
A poster on our forum observed that the accuracy of our LDPC decoder was very much worse than that of other implementations.
The cause is that we do all our calculations in int8_t fixed-point, which quickly saturates. The fix is to do all intermediate calculations in int16_t fixed-point.
On average this causes a performance regression of between 1.2x and 1.3x across all ArmRAL benchmarks.
Checklist
-
Contribution meets RAL's licence terms -
Documentation updated -
"Unreleased" section of the Changelog updated -
clang-format
andclang-tidy
run and changes included (C/C++ code) -
Commit message includes information on how to reproduce the issue(s) -
Tests pass when run with AddressSanitizer