CASA Function: DivBasisL
Computes a basis of the space L(G).
Calling Sequence:
- B := DivBasisL(G, C, method)
- B := DivBasisL(G, C, f)
Parameters:
- G : casa/finite/divisor
- A basis of L(G) will be computed.
- C : casa/finite/curve
- The basis will be computed on the curve C.
- The curve is assumed to be smooth. This is not checked by the function.
- method : string
- Algorithm used to determine the basis. Currently only "monomial" is availabe. This argument is optional.
- f : {list, set}
- Try to find a basis, as a subset of f.
Result:
- B : list(casa/finite/rational)
- A basis of the space L(G).
Description:
- Compute a basis of the space L(G).
- With method "monomial" only basis functions of the form x^iy^j with 0<i<deg(C, x) if deg(C,x) > deg(C,y) otherwise the basis is of the same form, only with x and y exchanged.
- If a list of basis functions is given, it is assumed, that the functions have poles at the Fq-rational points of the curve C only.
- The Riemann-Roch theorem is used to test, whether the full basis is found or not.
Examples:
> C := finiteCurve(x^3+y^2+y, finiteField(4));
> H := makeDivisor( [ [0,1,0] ], [4] );
> B := DivBasisL(H, C);
See Also:
[CASA]
[finiteCurve]
[makeDivisor]