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

 


LatElt

Creates a lattice element.

Syntax:

a := LatElt(Lambda, L); a := LatElt(Lambda, v);

lattice elt
  a  
lattice
  Lambda  
list of reals
  L  
vector over reals
  v  

Description:

Let \Lambda be a lattice with basis b_1, … ,b_k \in R^n.


Example:


kash> o := Order(Poly(Zx, [1, 13, 13, 13, 169]));;
kash> Lambda1 := Lat(o);;
kash> Lambda2 := LatLLL(Lambda1);
Basis:
[1 -8.898972742509405137989481976338606158885263693444 10.69685215937833774951\
8381293192142719370918398672 -8.3929181756421331436558159231442716924315445312\
98]
[1 0.134261593289898000224869399556756476905813297935 -23.31066585811776801515\
6201504078952000030073676501 79.4175118311570330970156479070963376256057136484\
54]
[1.414213562373095048801688724209698078569671875377 5.490479907567903997165793\
011467947079779898762664 8.919313203002418011662432704182923884009727755216 -5\
0.221971804833625921569542397881159401643756122474]
[0 2.890521001958810373589806560427662461469013267521 36.896665660756767606327\
137523226704052168032822307 64.55872298086831805701859966901857310820073028546\
]

kash> a := LatElt(Lambda1, [-13,-3,-12, -1]);
[ -13 -3 -12 -1 ]

kash> EltMove(a, Lambda2);
[ 0 0 0 -1 ]

kash> b := LatElt(Lambda2, Mat(R, [[-8.3929181756421277, 79.4175118311570333, -50.2219718048336188, 64.558722980868315]]));
[3.8982415889784072959401304801339781564659818657992e-15 -1.250940443446586219\
619498224288070637605434440371e-16 5.27881561428295035666070314675934084784840\
690518093e-18 0.9999999999999999552314203468322215678323061495942179]

kash> EltMove(b, Lambda1);
> [13.000000000000002940967920453250310436100992792282 2.99999999999999979866718\
8452950496664814830634329 11.99999999999999946805585977626960917064837694189 0\
.9999999999999999552314203468322215678323061495942179]



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