> A<x,y> := AffineSpace(FiniteField(5),2);
> f:=x^3*y+y^3+x;
> C:=Curve(A,f);
> P1:=Places(C,1);
> Div := DivisorGroup(C);
> P1;
[
Place at (0 : 1 : 0),
Place at (0 : 0 : 1),
Place at (1 : 0 : 0),
Place at (4 : 2 : 1),
Place at (3 : 2 : 1),
Place at (3 : 4 : 1)
]
> D:=P1[2]+P1[3];
> P2:=[P1[1],P1[2],P1[6]];
> D:=2*P1[4]+3*P1[5];
> D0:=Div!D;
> D0;
Divisor on Curve over GF(5) defined by
x^3*y + x + y^3
> RiemannRochSpace(D0);
KModule of dimension 3 over GF(5)
Mapping from: KModule of dimension 3 over GF(5) to Algebraic function field
defined over GF(5) by
x^3*y + x + y^3
> Basis(D0);
[ ($.1*$.2 + 4)/($.2^2 + $.2 + 4), ($.2 + 2)/($.2 + 3), 1/($.2 + 3) ]
> GC:=AlgebraicGeometricCode(P2,D0);
> GC;
[3, 2, 2] Linear Code over GF(5)
Generator matrix:
[1 0 2]
[0 1 4]