1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-08-14 23:43:43 -04:00

ldpctool: Remove VLAs from OffsetMinSumAlgorithm

Replace variable length arrays in OffsetMinSumAlgorithm::finalp() with a
std::vector buffers.

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:42:59 -04:00
parent 6de853d3d1
commit 1f62875563
@@ -248,13 +248,15 @@ struct OffsetMinSumAlgorithm
static void finalp(TYPE *links, int cnt)
{
TYPE beta = 0.5 * FACTOR;
TYPE mags[cnt], mins[cnt];
std::vector<TYPE> mags(cnt);
std::vector<TYPE> mins(cnt);
std::vector<TYPE> signs(cnt);
for (int i = 0; i < cnt; ++i)
mags[i] = std::max(std::abs(links[i]) - beta, TYPE(0));
CODE::exclusive_reduce(mags, mins, cnt, min);
TYPE signs[cnt];
CODE::exclusive_reduce(links, signs, cnt, sign);
CODE::exclusive_reduce(mags.data(), mins.data(), cnt, min);
CODE::exclusive_reduce(links, signs.data(), cnt, sign);
for (int i = 0; i < cnt; ++i)
links[i] = sign(mins[i], signs[i]);