Documentation ¶
Overview ¶
Package lincode contains functions and abstractions to work with binary linear codes
Index ¶
- func D(a LinearCode) uint
- func Encode(a LinearCode, v *vector.Vector) *vector.Vector
- func Generator(a LinearCode) *matrix.Matrix
- func IsEqual(a, b LinearCode) bool
- func IsSubset(a, b LinearCode) bool
- func IterWords(a LinearCode) <-chan *vector.Vector
- func ParityChecks(a LinearCode) *matrix.Matrix
- func Spectrum(a LinearCode) *map[uint]uint
- func String(c LinearCode) string
- type GenericLinCode
- func (c *GenericLinCode) Append(a *GenericLinCode, words []*vector.Vector) *GenericLinCode
- func (c *GenericLinCode) AppendM(a *GenericLinCode, m *matrix.Matrix) *GenericLinCode
- func (c *GenericLinCode) GetBasis() []*vector.Vector
- func (c *GenericLinCode) K() uint
- func (c *GenericLinCode) N() uint
- func (c *GenericLinCode) SetC(a *GenericLinCode) *GenericLinCode
- func (c *GenericLinCode) SetM(m *matrix.Matrix) *GenericLinCode
- func (c *GenericLinCode) SetRandom(n, k uint) *GenericLinCode
- func (c *GenericLinCode) SetV(words []*vector.Vector) *GenericLinCode
- func (c *GenericLinCode) SetWholeSpace(n uint) *GenericLinCode
- func (c *GenericLinCode) SetZero(n uint) *GenericLinCode
- func (c *GenericLinCode) String() string
- type LinearCode
- func Dual(a LinearCode) LinearCode
- func HadamardProduct(a, b LinearCode) LinearCode
- func Hull(a LinearCode) LinearCode
- func Intersect(a, b LinearCode) LinearCode
- func Puncture(a LinearCode, columns []uint) LinearCode
- func Sum(a, b LinearCode) LinearCode
- func Truncate(a LinearCode, columns []uint) LinearCode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Generator ¶
func Generator(a LinearCode) *matrix.Matrix
Generator returns generator matrix of a
func IterWords ¶
func IterWords(a LinearCode) <-chan *vector.Vector
IterWords iterates over code words of code a
func ParityChecks ¶
func ParityChecks(a LinearCode) *matrix.Matrix
ParityChecks returns parity-check matrix of code a
func Spectrum ¶
func Spectrum(a LinearCode) *map[uint]uint
Spectrum returns weight spectrum of code a
func String ¶
func String(c LinearCode) string
Types ¶
type GenericLinCode ¶
type GenericLinCode struct {
// contains filtered or unexported fields
}
func (*GenericLinCode) Append ¶
func (c *GenericLinCode) Append(a *GenericLinCode, words []*vector.Vector) *GenericLinCode
func (*GenericLinCode) AppendM ¶
func (c *GenericLinCode) AppendM(a *GenericLinCode, m *matrix.Matrix) *GenericLinCode
func (*GenericLinCode) GetBasis ¶
func (c *GenericLinCode) GetBasis() []*vector.Vector
func (*GenericLinCode) K ¶
func (c *GenericLinCode) K() uint
func (*GenericLinCode) N ¶
func (c *GenericLinCode) N() uint
func (*GenericLinCode) SetC ¶
func (c *GenericLinCode) SetC(a *GenericLinCode) *GenericLinCode
func (*GenericLinCode) SetM ¶
func (c *GenericLinCode) SetM(m *matrix.Matrix) *GenericLinCode
func (*GenericLinCode) SetRandom ¶
func (c *GenericLinCode) SetRandom(n, k uint) *GenericLinCode
func (*GenericLinCode) SetV ¶
func (c *GenericLinCode) SetV(words []*vector.Vector) *GenericLinCode
func (*GenericLinCode) SetWholeSpace ¶
func (c *GenericLinCode) SetWholeSpace(n uint) *GenericLinCode
func (*GenericLinCode) SetZero ¶
func (c *GenericLinCode) SetZero(n uint) *GenericLinCode
func (*GenericLinCode) String ¶
func (c *GenericLinCode) String() string
type LinearCode ¶
LinearCode defines the abstract interface of linear block code
func HadamardProduct ¶
func HadamardProduct(a, b LinearCode) LinearCode
HadamardProduct returns component-wise (Shur or Hadamard) product of codes a and b
func Hull ¶
func Hull(a LinearCode) LinearCode
Hull returns hull of code a Hull is a intersection of Dual(a) and a
func Intersect ¶
func Intersect(a, b LinearCode) LinearCode
Intersect returns intersection of code a and b
func Puncture ¶
func Puncture(a LinearCode, columns []uint) LinearCode
Puncture evaluates of puncture code. Punctured code is code obtaining by set the positions with indexes from `ncolumns` of every codeword to zero. Punctured code is NOT subcode of original code!
func Truncate ¶
func Truncate(a LinearCode, columns []uint) LinearCode
Truncate evaluates of truncated code. Truncated code is code obtaining by choose codewords which have coordinates with indexes from `columns` is zero. Unlike the punctured code truncated code is a subcode of original code.