1
0
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:
Robin Getz
2026-08-01 13:44:38 -04:00
parent 1f62875563
commit 4b3bf21418
@@ -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;