1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
#pragma once
#include "matrix/sparse_matrix.h"
#include <map>
#include <functional>
// 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;
};
struct GetLDPCDecodersEvent
{
std::map<std::string, std::function<LDPCDecoder *(Sparse_matrix)>> &decoder_list;
};
LDPCDecoder *get_best_ldpc_decoder(Sparse_matrix pcm);
}
}
|