Guava error-correcting code constructions

This module only contains Guava wrappers (Guava is an optional GAP package).

AUTHORS:

  • David Joyner (2005-11-22, 2006-12-03): initial version
  • Nick Alexander (2006-12-10): factor GUAVA code to guava.py
  • David Joyner (2007-05): removed Golay codes, toric and trivial codes and placed them in code_constructions; renamed RandomLinearCode to RandomLinearCodeGuava
  • David Joyner (2008-03): removed QR, XQR, cyclic and ReedSolomon codes
  • David Joyner (2009-05): added “optional package” comments, fixed some docstrings to to be sphinx compatible

Functions

sage.coding.guava.QuasiQuadraticResidueCode(p)

A (binary) quasi-quadratic residue code (or QQR code), as defined by Proposition 2.2 in [BM2003], has a generator matrix in the block form G=(Q,N). Here Q is a p \times p circulant matrix whose top row is (0,x_1,...,x_{p-1}), where x_i=1 if and only if i is a quadratic residue \mod p, and N is a p \times p circulant matrix whose top row is (0,y_1,...,y_{p-1}), where x_i+y_i=1 for all i.

INPUT:

  • p – a prime >2.

OUTPUT:

Returns a QQR code of length 2p.

EXAMPLES:

sage: C = codes.QuasiQuadraticResidueCode(11); C   # optional - gap_packages (Guava package)
[22, 11] linear code over GF(2)

REFERENCES:

  • [BM2003]
  • [Joy2006]

These are self-orthogonal in general and self-dual when p \\equiv 3 \\pmod 4.

AUTHOR: David Joyner (11-2005)

sage.coding.guava.RandomLinearCodeGuava(n, k, F)

The method used is to first construct a k \times n matrix of the block form (I,A), where I is a k \times k identity matrix and A is a k \times (n-k) matrix constructed using random elements of F. Then the columns are permuted using a randomly selected element of the symmetric group S_n.

INPUT:

  • n,k – integers with n>k>1.

OUTPUT:

Returns a “random” linear code with length n, dimension k over field F.

EXAMPLES:

sage: C = codes.RandomLinearCodeGuava(30,15,GF(2)); C      # optional - gap_packages (Guava package)
[30, 15] linear code over GF(2)
sage: C = codes.RandomLinearCodeGuava(10,5,GF(4,'a')); C      # optional - gap_packages (Guava package)
[10, 5] linear code over GF(4)

AUTHOR: David Joyner (11-2005)