package reedsolomon

  1. Overview
  2. Docs

Create a Reed-Solomon code based on the given Galois field and code parameters

Parameters

module P : RsParams

Signature

type elt = G.t
module M : Matrix.S with type t = elt
module R : Poly.S with type t = elt array and type elt = elt
type poly = R.t
type loc = int
val root : int -> elt
val generator : poly
val xn : int -> poly
val x2t : poly
val parity : poly -> poly
val encode : poly -> poly
val horner : poly -> elt -> elt
val syndromes : poly -> poly
val key_equations : poly -> int -> M.matrix * M.matrix
val solve_key_equations : (M.matrix * M.matrix) -> M.matrix
val peterson : poly -> poly
val euclid_inner : (poly * poly) -> (poly * poly) -> poly * poly
val euclid : ?norm:bool -> ?lim:int -> poly -> poly * poly
val berlekamp_massey_iter : poly -> int -> (poly * poly * int) -> poly * poly * int
val berlekamp_massey : poly -> poly
module Sarwate : sig ... end

inversionless berlekamp massey algorithms.

val chien : poly -> loc list
val error_location : loc -> int
val error_magnitude : int -> poly -> poly -> poly
val deriv : poly -> poly
val forney : poly -> poly -> loc -> elt
val error : elt list -> loc list -> poly
val correct : poly -> poly -> poly
val decode_euclid : poly -> poly
val decode_berlekamp_massey : poly -> poly
val decode_peterson : poly -> poly
val decode : poly -> poly
val erasure_locator : int list -> poly
val zero_erasures : poly -> int list -> poly
val error_and_erasure : elt list -> loc list -> elt list -> loc list -> poly
val decode_erasures_euclid : poly -> int list -> poly
val decode_erasures : poly -> int list -> poly
val decode_errors_and_erasures_euclid : poly -> int list -> poly
val decode_errors_and_erasures : poly -> int list -> poly