#### D.10.1.3 BrillNoether

Procedure from library `brnoeth.lib` (see brnoeth_lib).

Usage:
  BrillNoether(G,CURVE); G an intvec, CURVE a list

Return:
  list of ideals (each of them with two homogeneous generators, which represent the numerator, resp. denominator, of a rational function).
  The corresponding rational functions form a vector space basis of the linear system L(G), G a rational divisor over a non-singular curve.

Note:
  The procedure must be called from the ring CURVE[1][2], where CURVE is the output of the procedure `NSplaces`.
  The intvec G represents a rational divisor supported on the closed places of CURVE[3] (e.g. `G=2,0,-1;` means 2 times the closed place 1 minus 1 times the closed place 3).

Example:

    LIB "brnoeth.lib";
    int plevel=printlevel;
    printlevel=-1;
    ring s=2,(x,y),lp;
    list C=Adj_div(x3y+y3+x);
    ==> The genus of the curve is 3
    C=NSplaces(1..4,C);
    // the first 3 Places in C[3] are of degree 1.
    // we define the rational divisor G = 4*C[3][1]+4*C[3][3] (of degree 8):
    intvec G=4,0,4;
    def R=C[1][2];
    setring R;
    list LG=BrillNoether(G,C);
    ==> Vector basis successfully computed
    // here is the vector basis of L(G):
    LG;
    ==> [1]:
    ==>    _[1]=1
    ==>    _[2]=1
    ==> [2]:
    ==>    _[1]=y
    ==>    _[2]=x
    ==> [3]:
    ==>    _[1]=z
    ==>    _[2]=x
    ==> [4]:
    ==>    _[1]=y2
    ==>    _[2]=x2
    ==> [5]:
    ==>    _[1]=xz2+y3
    ==>    _[2]=x3
    ==> [6]:
    ==>    _[1]=xyz2+y4
    ==>    _[2]=x4
    printlevel=plevel;

See also: Adj_div; NSplaces; Weierstrass.

User manual for Singular version 4-0-3, 2016, generated by texi2html.