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

 


RayClassGroup

Returns the ray class number and the orders of the generators of the ray class group modulo a congruence module.

Syntax:

L := RayClassGroup(m0 [,minf]);
L := RayClassGroup(o [,minf]);

list
  L  
ideal
  m0  
list
  minf  
of integers/infinite primes
order
  o  

See also:  EltCon, IdealRayClassRep, OrderClassGroup, OrderPrec, RayClassGroupCyclicFactors, RayConductor

Description:

Computes the ray class group modulo a congruence module {\goth{m}} = {\goth{m}}_0{\goth{m}}_\infty, where {\goth{m}}_0 is an integral ideal of a maximal order O and {\goth{m}}_\infty is a formal product of primes at infinity -- here a subset of the real embeddings of O. {\goth{m}}_\infty is represented by a list of integers, where each entry represents a real embedding (as given by EltCon). RayClassGroup returns a list consisting of the ray class number and a list of the orders of the cyclic factors of the ray class group. It might be necessary to use a higher precision (set by OrderPrec) in order to get correct results when working with primes at infinity. Computing the class group and the units of the maximal order first can speed up the computation of the ray class group, as it is possible to influence the calculation of the class group, for instance by setting a lower bound for the regulator. For a description of the algorithm see Pau1,Pau2.


Example:


kash> O := OrderMaximal(Order(Z,2,10));;
kash> OrderClassGroup(O,500,"euler","fast");
[ 2, [ 2 ] ]
kash> m0 := 27*O;;
kash> minf := [1,2];;
kash> L := RayClassGroup(m0,minf);
[ 72, [ 36, 2 ] ]
kash> o:=OrderMaximal(Poly(Zx,[1,1,1]));
Generating polynomial: x^2 + x + 1
Discriminant: -3 

kash> L:=RayClassGroup(o);
[ 1, [ 1 ] ]



Example:

compute the ray class group of an ideal in Z

kash> a := ZIdealCreate(9);
<9>
kash> RayClassGroup(a);
[ 3, [ 3 ] ]


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