This module only contains Guava wrappers (Guava is an optional GAP package).
AUTHORS:
The binary ‘Reed-Muller code’ with dimension k and
order r is a code with length and minimum distance
(see for example, section 1.10 in [HP]). By definition, the
order binary Reed-Muller code of length
, for
, is the set of all vectors
,
where
is a multivariate polynomial of degree at most
in
variables.
INPUT:
OUTPUT:
Returns the binary ‘Reed-Muller code’ with dimension and order
.
EXAMPLE:
sage: C = codes.BinaryReedMullerCode(2,4); C # optional - gap_packages (Guava package)
Linear code of length 16, dimension 11 over Finite Field of size 2
sage: C.minimum_distance() # optional - gap_packages (Guava package)
4
sage: C.gen_mat() # optional - gap_packages (Guava package)
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
[0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]
[0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1]
[0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1]
[0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1]
[0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1]
[0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1]
[0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1]
[0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1]
[0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1]
[0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1]
AUTHOR: David Joyner (11-2005)
A (binary) quasi-quadratic residue code (or QQR code), as defined by
Proposition 2.2 in [BM], has a generator matrix in the block form .
Here
is a
circulant matrix whose top row
is
, where
if and only if
is a quadratic residue
, and
is a
circulant
matrix whose top row is
, where
for all
.
INPUT:
OUTPUT:
Returns a QQR code of length .
EXAMPLES:
sage: C = codes.QuasiQuadraticResidueCode(11); C # optional - gap_packages (Guava package)
Linear code of length 22, dimension 11 over Finite Field of size 2
REFERENCES:
[BM] | Bazzi and Mitter, {it Some constructions of codes from group actions}, (preprint March 2003, available on Mitter’s MIT website). |
[Jresidue] | D. Joyner, {it On quadratic residue codes and hyperelliptic curves}, (preprint 2006) |
These are self-orthogonal in general and self-dual when .
AUTHOR: David Joyner (11-2005)
The method used is to first construct a matrix of the block
form
, where
is a
identity matrix and
is a
matrix constructed using random elements of
. Then
the columns are permuted using a randomly selected element of the symmetric
group
.
INPUT:
OUTPUT:
Returns a “random” linear code with length , dimension
over field
.
EXAMPLES:
sage: C = codes.RandomLinearCodeGuava(30,15,GF(2)); C # optional - gap_packages (Guava package)
Linear code of length 30, dimension 15 over Finite Field of size 2
sage: C = codes.RandomLinearCodeGuava(10,5,GF(4,'a')); C # optional - gap_packages (Guava package)
Linear code of length 10, dimension 5 over Finite Field in a of size 2^2
AUTHOR: David Joyner (11-2005)