[back] [prev] [next] [index] [root]

 


AlffDivisorLBasisShort

Computes a basis of a Riemann-Roch space.

Syntax:

B := AlffDivisorLBasisShort(D);

list
  B  
of pairs of basis elements b_i and degree bounds d_i
alff divisor
  D  

See also:  AlffDivisorLBasis, AlffDivisorLDim, AlffDivisorLIndex, AlffDivisorDeg, AlffGenus, Alff

Description:

Let F = k(T,y) be an algebraic function field defined by f(T,y)=0 over k. Given a divisor D of F this function returns a basis of the k-vector space {cal L}(D) = { a \in F^\times \;|\; (a) >= -D } cup { 0 } in the short form B = [ [b_1, d_1], \dots, [b_k, d_k] ] with b_i \in F^\times and d_i \in Z^{ >= 0} for all 1 <= i <= k and with k <= n, where n denotes the degree in y of the defining equation f of F, such that {cal L}(D) = \left{ \sum_{i=1}^k \lambda_i b_i \;|\; \lambda_i \in k[T] with deg \lambda_i <= d_i for 1 <= i <= k right}. The basis elements b_i are represented in the finite maximal order. \par With option "raw" a complete list of n := \deg_y f tuples [b_i, d_i] with d_i \in Z and the property as above is returned. The algorithm is described in He2.


Example:


kash> AlffInit(FF(5,1));;
kash> AlffOrders(y^2+T^3+1);;
kash> infty := AlffPlaceSplit(F, 1/T)[1];
Alff place < [ 1/T, 0 ], [ 0, 1 ] >
kash> l := AlffPlaceSplit(F, T+3);
[ Alff place < [ T + 3, 0 ], [ 1, 1 ] >, 
  Alff place < [ T + 3, 0 ], [ 4, 1 ] > ]
kash> D := 2*infty + 3*l[1] - l[2];
Alff divisor
[ [ Alff place < [ 1/T, 0 ], [ 0, 1 ] >, 2 ],
[ Alff place < [ T + 3, 0 ], [ 1, 1 ] >, 3 ],
[ Alff place < [ T + 3, 0 ], [ 4, 1 ] >, -1 ] ]

kash> AlffDivisorLBasisShort(D);
> [ [ [ 4*T^3 + 4*T^2 + 2*T + 1, T ] / (T^3 + 4*T^2 + 2*T + 2), 1 ], 
  [ [ 4*T^3 + 2*T^2 + 4, 1 ] / (T^3 + 4*T^2 + 2*T + 2), 1 ] ]


<- back[back] [prev] [next] [index] [root]