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

 


OrderRelUnits

Computes the relative units.

Syntax:

L := OrderRelUnits(o [,S  |  I] [,"raw"]);

list
  L  
of L1, T, hs or L2, hs
list
  L1  
of algebraic integers
list
  L2  
of S-units
matrix
  T  
transformation matrix
integer
  hs  
S-class number
order
  o  
list
  S  
of pairwise distinct prime ideals.
ideal
  I  

See also:  OrderSUnits

Description:

The OrderRelUnits function returns a basis of the S-units modulo split into torsion units and other S-units. You may specify S either as a list of prime ideals or as an ideal {\goth{I}}. In this case S consists of all primes dividing {\goth{I}}. Omitting the argument S means to choose for S the ideal 1*o. If the last argument is "raw", this function will return some algebraic elements \alpha|1, \dots, \alpha|s and two transformation matrices T and U such that (\alpha|1, \dots, \alpha|s)T interpreted as power products gives a basis of the relative torsion units and (\alpha|1, \dots, \alpha|s)U interpreted as power products gives a basis of the relative S-units. In both cases it will also return the cardinality of the subgroup of the class group which is generated by the prime ideals of S.


Example:

We have for example:

kash> o:= Order(Poly(Zx,[1,1,1,1,1]));
Generating polynomial: x^4 + x^3 + x^2 + x + 1

kash> zeta:= Elt(o,[0,1,0,0]);
[0, 1, 0, 0]
kash> ox:=PolyAlg(o);
Univariate Polynomial Ring in x over Generating polynomial: x^4 + x^3 + x^2 + \
x + 1

kash> O:= Order(Poly(ox,[1,0,-zeta,0,zeta^2]));
      F[1]
        /
       /
   E1[1]
  /
 /
Q
F  [ 1]     x^4 + [0, -1, 0, 0]*x^2 + [0, 0, 1, 0]
E 1[ 1]     x^4 + x^3 + x^2 + x + 1

kash> I:=31*o;
<31>
kash> m:=OrderRelUnits(O,I);
> [ [ [0, [-2, -2, -1, -1], 0, [0, 1, 0, -1]], 
      [0, [-1, -1, -1, 0], 0, [-1, -1, -2, -1]], 
      [[0, -1, 0, 0], [0, 0, -1, -1], [1, 1, 1, 0], [0, 1, 1, 1]], 
      [-1, [0, 0, 1, 0], [0, 0, -1, 0], [0, -1, 0, -1]], 
      [[-1, -1, -1, -1], [0, 1, 0, 0], [0, 0, 0, -1], -1], 
      [[-1, 0, -1, 0], [1, 0, 0, 1], [-1, -1, -1, -1], [0, 0, -1, 0]], 
      [[-10, -19, -24, -44], 0, [-14, -8, 16, -12], 0] / 31, 
      [[17, 10, 22, -3], 0, [-4, -37, -7, -23], 0] / 31, 
      [[-66, -67, -137, -77], 0, [6, -39, -58, -117], 0] / 31, 
      [[-19, -26, 84, 56], 0, [27, -43, -59, -91], 0] / 31 ], 
  [ [[0, 0, 1, 1], 0, [-1, -1, -1, 0], 0], 
      [0, [0, -1, -1, 1], 0, [2, 1, 1, 1]], 
      [[-49, -38, -43, -52], 0, [27, -5, 18, -15], 0] / 31, 
      [[-2, -18, 71, 8], 0, [34, -4, 33, 81], 0] / 31, 
      [[-13, 69, -19, -103], 0, [66, 67, 137, -16], 0] / 31 ] ]


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