# 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);