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

 


OrderClassGroup

Computes the class group.

Syntax:

L := OrderClassGroup( O [,b] [,"fast"] [,"Euler"] );

list
  L  
order
  O  
integer
  b  

See also:  OrderClassGroupCheck, OrderClassGroupCyclicFactors, IdealClassRep, IdealIsPrincipal

Description:

The OrderClassGroup function computes the class group of the algebraic number field which is generated by the order O. It returns a list L whose first entry is the class number. The second entry is a list which contains the orders of the cyclic subgroups. Notice that the class group is stored in the order O. To get more information on the class group print out the order. Several (optional) arguments can be passed to this function: The first argument has always to be the order. As a second argument a bound b for prime ideals to be considered may be given. If it is omitted, OrderClassGroup uses the Minkowski bound for the computation of the class group. The Minkowski bound always guarantees correct results. However, when the field discriminant is {\em large}, the Minkowski bound requires very time consuming computations. Additionally, the following options can be passed to speed up the computation: "fast" indicates a fast computation without checking the results "Euler" uses the Euler product for computation. The check omitted when using "fast" may be done later by using OrderClassGroupCheck.


Example:

We are going to compute the class group of F = {\Bbb Q}(\sqrt[4]{-65}).

kash> o := OrderMaximal(Z,4,-65);;
kash> Time(true);
true
Time: 0 ms
kash> OrderClassGroup(o);
[ 128, [ 2, 4, 4, 4 ] ]
Time: 260 ms


Example:

The class group is of order 128 and is isomorphic to C_2 \times C_4 \times C_4 \times C_4. \smallskip In the example above, the time display was activated. Compare the runtime difference when computing the class group of F by taking 30 as a bound for the prime ideals. Notice, that the Minkowski bound is 1274.

kash> o := OrderMaximal(Z,4,-65);;
kash> OrderMinkowski(o);
1274
Time: 0 ms
kash> OrderClassGroup(o,30);
[ 128, [ 2, 4, 4, 4 ] ]
Time: 110 ms


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