Bounded binary sparse parity-check coding and iterative soft-decision decoding
moon add red6667/moonldpc@0.1.0let code = @moonldpc.hamming7()
let encoder = @moonldpc.Encoder::new(code)
let word = encoder.encode([1, 0, 1, 1])
let llr = @moonldpc.awgn_llr(@moonldpc.bpsk(word), 0.5)
let decoded = code.decode(llr, @moonldpc.DecoderConfig::new(SumProduct))
let information = encoder.extract(decoded.word)moon run examples/receiver
moon run examples/designer
moon run examples/telemetry
moon run examples/laboratorymoon run cmd/main -- '{"action":"analyze","code":{"variables":3,"rows":[[0,1],[1,2]]}}'
moon run cmd/main -- '{"action":"exact-decode","code":{"variables":3,"rows":[[0,1],[1,2]]},"llr":[-2,0.1,-2]}'moon info && moon fmt
moon fmt --check
moon check --deny-warn
moon test --deny-warn
moon build --deny-warn
python scripts/generate_oracles.py --check
python scripts/test_audit_history.py
python scripts/audit_local.py
python scripts/audit_history.py
python scripts/smoke.py --target wasm-gcpub suberror CodeError {
InvalidDimensions(String)
InvalidIndex(Int, Int)
DuplicateEntry(Int, Int)
InvalidBit(Int, Int)
LengthMismatch(Int, Int)
InvalidNumber(String)
InvalidFormat(Int, String)
ResourceLimit(String)
Inconsistent(String)
} derive(Debug)fn CosetEncoder::encode(self : CosetEncoder, information : Array[Int]) -> Array[Int] raise CodeErrorfn DecoderConfig::new(algorithm : Algorithm, iterations? : Int, normalization? : Double, offset? : Double, llr_limit? : Double) -> DecoderConfig raise CodeErrorfn Encoder::decode_exact(self : Encoder, llr : Array[Double], limit? : Double) -> ExactDecodeReport raise CodeErrorimpl ToJson for ErasureReportfn ErrorCounts::observe(self : ErrorCounts, transmitted : Array[Int], decoded : Array[Int], converged : Bool) -> ErrorCounts raise CodeErrorfn ParityCheck::bit_flip(self : ParityCheck, received : Array[Int], iterations? : Int) -> BitFlipReport raise CodeErrorfn ParityCheck::correct_single(self : ParityCheck, received : Array[Int]) -> SingleErrorReport raise CodeErrorfn ParityCheck::decode(self : ParityCheck, llr : Array[Double], config : DecoderConfig) -> DecodeReport raise CodeErrorfn ParityCheck::peel(self : ParityCheck, observations : Array[Int?]) -> ErasureReport raise CodeErrorfn ParityCheck::permute(self : ParityCheck, permutation : Array[Int]) -> ParityCheck raise CodeErrorfn ParityCheck::recover_erasures(self : ParityCheck, observations : Array[Int?]) -> RecoveryReport raise CodeErrorfn ParityCheck::stopping_set_report(self : ParityCheck, variables : Array[Int]) -> StoppingReport raise CodeErrorimpl ToJson for RecoveryReportfn execute(request : String) -> StringInstall
Download zipBounded binary sparse parity-check coding and iterative soft-decision decoding