# 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]