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:
@@ -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]);
|
||||
|
||||
Reference in New Issue
Block a user