satdump/src-core/common/codings/ldpc/ldpc_decoder.h

29 lines
631 B
C
Raw Normal View History

2022-12-22 13:08:09 +01:00
#pragma once
#include "matrix/sparse_matrix.h"
#include <map>
#include <functional>
2022-12-22 13:08:09 +01:00
// Based on gr-ccsds
namespace codings
{
namespace ldpc
{
class LDPCDecoder
{
public:
LDPCDecoder(Sparse_matrix pcm);
virtual ~LDPCDecoder();
virtual int decode(uint8_t *out, const int8_t *in, int it) = 0;
virtual int simd() = 0;
};
2022-12-22 13:08:09 +01:00
struct GetLDPCDecodersEvent
{
std::map<std::string, std::function<LDPCDecoder *(Sparse_matrix)>> &decoder_list;
2022-12-22 13:08:09 +01:00
};
LDPCDecoder *get_best_ldpc_decoder(Sparse_matrix pcm);
}
}