CASA Function: GoppaPrimary
Prepares a primary Goppa code.
Calling Sequence:
- C := GoppaPrimary(C, D, G)
- C := GoppaPrimary(C, D, G, basis)
Parameters:
- C : casa/finite/Curve
- The curve to define the code.
- D : {casa/finite/Divisor, list, string}
- Points used to define the code. This can be a divisor, or a list of the points, or a string.
- The following strings are accepted:
- "affine": The affine Fq-rational points of the curve.
- "rest": The Fq-rational points of the curve, except those used by the divisor G.
- G : {casa/finite/Divisor, integer}
- Divisor used to define the code. If only an integer is specified, and the curve has only a single pont at infinty, then this is value taken to be the multiplicity of the single point at infinity.
- basis : {string, list}
- Method to determine the basis of L(G). Passed as additional argument to DivBasisL.
Result:
- C : casa/finite/Goppa/primary
-
Description:
- Prepares the primary Goppa code CO(D,G).
- The code is a table with the following entries:
- G: The generator matrix.
- GIn: The generator matrix, in RootOf form.
- H: The pariy check matrix.
- HIn: The pary check matrix, in RootOf form.
- C: The curve defining the code.
- LG: The divisor G and a basis of the space. The divisor can be accessed as C[LG][1], the basis using C[LG][2].
- P: The support of the divisor D, that is the points on which the rational function in L(G) are evaluated.
- n: The length of the code
- k: The dimension of the code
- d[Gamma], d_Gamma: The designed distance of the code
Examples:
> C1 := finiteCurve(x^3+y^2+y, finiteField(4));
> P1 := GoppaPrimary(C1, "affine", 4);
See Also:
[CASA]
[GoppaEncode]
[GoppaDecode]
[DivBasisL]