1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-10-31 15:07:12 -04:00
sdrangel/modemm17/Convolution.h

27 lines
439 B
C
Raw Normal View History

2022-07-04 17:03:07 -04:00
// Copyright 2020 modemm17 LLC.
#pragma once
#include <bit>
#include <cstdint>
#include <cstddef>
#include "Util.h"
2022-07-04 17:03:07 -04:00
namespace modemm17
{
inline constexpr uint32_t convolve_bit(uint32_t poly, uint32_t memory)
{
return popcount(poly & memory) & 1;
}
template <size_t K, size_t k = 1>
inline constexpr uint32_t update_memory(uint32_t memory, uint32_t input)
{
return (memory << k | input) & ((1 << (K + 1)) - 1);
}
2022-07-04 17:03:07 -04:00
} // modemm17