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

 


ModuleUnion

Computes the union of two modules.

Syntax:

M :=ModuleUnion(M1, M2 [,d|I] [,"PBNF"] [,"lower"] );

modules
  M, M1, M2  
integer
  d  
used for reduction
ideal
  I  
used for reduction

See also:  ModuleConcat, ModuleNF

Description:

The result of this function is the union or sum of the two modules in normal form. For a detailed description of the parameters for the modular normal form computation see ModuleNF. This function is basically a ModuleConcat of the modules and a ModuleNF on the result. The operator '+' on modules is identical to ModuleUnion except the additionsl parameters for the normal form computation.


Example:

kash>  O:=OrderMaximal(Poly(Zx, [1,-10,-3,-2]));;
kash> o:=OrderMaximal(Order(O,3,3));;
kash> Oa:=OrderMaximal(OrderAbs(o));;
kash> L:=List(Factor(10*Oa),i->i[1]);;
kash> M1:=IdealBasis(IdealMove(L[2]*L[6], o));
{<10, [26, 1, 0]><2, [0, 0, 1]><1>
[1 -2 -1]
[0 1 1]
[0 0 1]
}

kash> M2:=IdealBasis(IdealMove(L[1]*L[6], o));
{<10, [-12714, -20615, -67306]><1><1>
[1 3 1]
[0 1 0]
[0 0 1]
}

kash> ModuleUnion(M1,M2);
> {<5, [0, 2, 2]><1><1>
[1 -2 1]
[0 1 0]
[0 0 1]
}



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