mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-08-12 22:43:36 -04:00
ldpctool: Remove VLAs from OffsetMinSumAlgorithm<int8_t, FACTOR>
Replace variable length arrays in the int8_t FACTOR specialization of OffsetMinSumAlgorithm::finalp() with a single std::vector scratch buffer. This removes reliance on compiler VLA extensions while preserving the existing contiguous temporary buffer layout. Signed-off-by: Robin Getz <rgetz503@gmail.com>
This commit is contained in:
@@ -327,12 +327,15 @@ struct OffsetMinSumAlgorithm<int8_t, UPDATE, FACTOR>
|
||||
static void finalp(int8_t *links, int cnt)
|
||||
{
|
||||
int8_t beta = std::nearbyint(0.5 * FACTOR);
|
||||
int8_t mags[cnt], mins[cnt];
|
||||
std::vector<int8_t> scratch(3 * cnt);
|
||||
int8_t *mags = scratch.data();
|
||||
int8_t *mins = mags + cnt;
|
||||
int8_t *signs = mins + cnt;
|
||||
|
||||
for (int i = 0; i < cnt; ++i)
|
||||
mags[i] = subu(sqabs(links[i]), beta);
|
||||
CODE::exclusive_reduce(mags, mins, cnt, min);
|
||||
|
||||
int8_t signs[cnt];
|
||||
CODE::exclusive_reduce(links, signs, cnt, xor_);
|
||||
for (int i = 0; i < cnt; ++i)
|
||||
signs[i] |= 127;
|
||||
|
||||
Reference in New Issue
Block a user