|
D.9.1.4 Weierstrass
Procedure from library brnoeth.lib (see brnoeth_lib).
- Usage:
Weierstrass( i, m, CURVE ); i,m integers and CURVE a list
- Return:
list WS of two lists:
| WS[1] list of integers (Weierstr. semigroup of the curve at place i up to m)
WS[2] list of ideals (the associated rational functions)
|
- Note:
The procedure must be called from the ring CURVE[1][2],
where CURVE is the output of the procedure NSplaces .
i represents the place CURVE[3][i].
Rational functions are represented by numerator/denominator
in form of ideals with two homogeneous generators.
- Warning:
The place must be rational, i.e., necessarily CURVE[3][i][1]=1.
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);
def R=C[1][2];
setring R;
// Place C[3][1] has degree 1 (i.e it is rational);
list WS=Weierstrass(1,7,C);
→ Vector basis successfully computed
// the first part of the list is the Weierstrass semigroup up to 7 :
WS[1];
→ [1]:
→ 0
→ [2]:
→ 3
→ [3]:
→ 5
→ [4]:
→ 6
→ [5]:
→ 7
// and the second part are the corresponding functions :
WS[2];
→ [1]:
→ _[1]=1
→ _[2]=1
→ [2]:
→ _[1]=y
→ _[2]=z
→ [3]:
→ _[1]=xy
→ _[2]=z2
→ [4]:
→ _[1]=y2
→ _[2]=z2
→ [5]:
→ _[1]=y3
→ _[2]=xz2
printlevel=plevel;
|
See also:
Adj_div;
BrillNoether;
NSplaces.
|