[back] [prev] [next] [index] [root]
 
AlffClassGroup
Computes the structure of the divisor class group of a
global function field.
Syntax:
Cl := AlffClassGroup( F [, b ] [, A ] [, "fast" ] );
| list | 
  Cl    | 
of integer and list (class group structure) | 
| alff | 
  F    | 
global function field | 
| integer | 
  b    | 
bound for degree of places to be used | 
| alff divisor | 
  A    | 
for reduction | 
See also:  AlffClassGroupGenBound, AlffClassNumberApprox, AlffDivisorDegOne, AlffLPoly, Alff, AlffInit, AlffOrders
Description:
Let F/k be a global function field. The divisor class group
is the factor group of all divisors factored by the principle
divisors.
This function returns a list  Cl:
 Cl[1] is the class number and  Cl[2] is
a list of integers 1 < c_1 | \dots | c_m
such that the class group
of F/k is isomorphic to Z/c_1Z \times \dots \times Z/c_mZ.
The function requires that the constant field of definition is
the exact constant field.
\medskip
The following additional parameters can be given:
-  b is a bound for the places to be considered in the
factor base. For large q or g it can be reasonable to take
smaller values for b than returned by
 AlffClassGroupGenBoundStrong(F).
 -  A is a reduction divisor. It must factor over the
factor base (which is tested automatically)
and should have small, positive degree. If the
degree [F : k(T)] is large than it can be reasonable to take
e.g.  A1 := AlffDivisorDegOne(F).
 -  If b is chosen very small and if the class group
is a product of many cyclic factors then the option  "fast"
gives a speedup. The result of the computation however is
not proven be correct anymore.
 
The algorithm is described in He2.
Example:
<- back[back] [prev] [next] [index] [root]