2018-11-07 21:50:55 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
// codeword is 174 log-likelihoods.
|
|
|
|
// plain is a return value, 174 ints, to be 0 or 1.
|
|
|
|
// iters is how hard to try.
|
|
|
|
// ok == 87 means success.
|
2018-12-24 20:22:26 +08:00
|
|
|
void ldpc_decode(float codeword[], int max_iters, uint8_t plain[], int *ok);
|
2018-11-14 23:06:32 +08:00
|
|
|
|
2018-12-24 20:22:26 +08:00
|
|
|
void bp_decode(float codeword[], int max_iters, uint8_t plain[], int *ok);
|
2018-12-28 04:33:07 +08:00
|
|
|
|
|
|
|
// Packs a string of bits each represented as a zero/non-zero byte in plain[],
|
|
|
|
// as a string of packed bits starting from the MSB of the first byte of packed[]
|
|
|
|
void pack_bits(const uint8_t plain[], int num_bits, uint8_t packed[]);
|