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

 


OrderUnitsMerge

Extends a system of units of the given order.

Syntax:

B := OrderUnitsMerge(o,eta);
B := OrderUnitsMerge(o,eta,"append");

boolean
  B  
order
  o  
algebraic element
  eta  
a unit in o

Description:

The OrderUnitsMerge function performs a MLLL reduction to expand the current unit group of the given absolute order o by merging \eta in it. If the rank of the unit group increases OrderUnitsMerge will return TRUE. Otherwise it will return FALSE. OrderUnitsMerge(o,eta,"append") just appends the unit \eta to the system of units of the order o, MLLL is not performed.


Example:

Extending a system of units of an order.

kash> o := Order (Poly (Zx,[1,0,-186,0,13097,0,-412704,0,4946176]));
Generating polynomial: x^8 - 186*x^6 + 13097*x^4 - 412704*x^2 + 4946176

kash> O := OrderMaximal (o);;
kash> OrderUnitsMerge (O,Elt (O,[-14, 5, 1, 0, -1, 1, 3, -5]));
true
kash> OrderUnitsMerge (O,Elt (O,[177, -301, 26, -31, 39, -74, -190, 377]));
true
kash> OrderReg (O);
Error, no maximal set of independent units known
kash> OrderUnitsMerge (O,Elt (O,[227, -555, 57, -63, 74, -140, -361, 714]));
true
kash> a := Elt (O,[-14, 5, 1, 0, -1, 1, 3, -5]);;
kash> b := Elt (O,[227, -555, 57, -63, 74, -140, -361, 714]);;
kash> OrderUnitsMerge (O,a*b);
false
kash> OrderReg (O);
> 121.297795062765195428716897829517493027623458635


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