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

 


IdealUpperHNFTrans

the transformation matrix from the original basis to the basis in upper HNF

Syntax:

M:=IdealUpperHNFTrans(I);

matrix
  M  
ideal
  I  

See also:  IdealBasisUpperHNF

Description:

This returns the transformation matrix when transforming the original basis (which can bee seen with IdealBasis) to the basis in upper HNF (which can bee seen with IdealBasisUpperHNF). Once computed the transformation matrix is stored in the ideal data structure so it has not to be computed again.


Example:


kash> O:=OrderMaximal(Order(Poly(Zx,[1,4,1,-4,-3,7])));
Generating polynomial: x^5 + 4*x^4 + x^3 - 4*x^2 - 3*x + 7
Discriminant: 28442269 

kash> I:=Ideal(O,Mat(Z,[[1,2,1,4,6],[3,8,4,6,2],[6,4,3,3,8],
> [3,2,7,9,5],[0,2,8,8,4]]),1);
<
[1 2 1 4 6]
[3 8 4 6 2]
[6 4 3 3 8]
[3 2 7 9 5]
[0 2 8 8 4]
>

kash> IdealBasis(I)[2]*IdealUpperHNFTrans(I);
[839 755 349 421 449]
[  0   3   0   1   0]
[  0   0   1   0   0]
[  0   0   0   1   0]
[  0   0   0   0   2]
kash> IdealBasisUpperHNF(I);
> [ 1, [839 755 349 421 449]
    [  0   3   0   1   0]
    [  0   0   1   0   0]
    [  0   0   0   1   0]
    [  0   0   0   0   2] ]


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