### 1.48.5 Βραχεία (σχεδόν ορθόγωνη) βάση πλέγματος : lll

lll παίρνει ως όρισμα έναν αντιστρέψιμο πίνακα M με ακέραιους συντελεστές.
lll επιστρέφει (S,A,L,O) έτσι ώστε:

- οι γραμμές του S είναι η βραχεία βάση του ℤ-προτύπου, η παραγόμενη από τις γραμμές του M,
- A είναι ο πίνακας-αλλαγής-βάσης από την βραχεία βάση στην βάση που ορίζεται από τις γραμμές του M (A*M=S),
- L είναι ένας κάτω τριγωνικός πίνακας, στον οποίο το μέτρο των μη διαγώνιων συντελεστών του είναι μικρότερο από 1/2,
- O είναι ένας πίνακας με ορθογώνιες γραμμές έτσι ώστε L*O=S.

Είσοδος :

[S,A,L,O]:=lll(M:=[[2,1],[1,2]])

Έξοδος :

[[-1,1],[2,1]], [[-1,1],[1,0]], [[1,0],[1/-2,1]], [[-1,1],[3/2,3/2]]

Επομένως :
S=[[-1,1],[2,1]]
A=[[-1,1],[1,0]]
L=[[1,0],[1/-2,1]]
O=[[-1,1],[3/2,3/2]]
Επομένως, η αρχική βάση είναι η v1=[2,1], v2=[1,2]
και η βραχεία βάση είναι η w1=[-1,1], w2=[2,1].
Αφού w1=-v1+v2 και w2=v1 τότε :
A:=[[-1,1],[1,0]], A*M==S και L*O==S.
Είσοδος :

(S,A,L,O):=lll([[3,2,1],[1,2,3],[2,3,1]])

Έξοδος :

S=[[-1,1,0],[-1,-1,2],[3,2,1]]
A= [[-1,0,1],[0,1,-1],[1,0,0]]
L= [[1,0,0],[0,1,0],[(-1)/2,(-1)/2,1]]
O= [[-1,1,0],[-1,-1,2],[2,2,2]]

Είσοδος :
M:=[[3,2,1],[1,2,3],[2,3,1]]
Ιδιότητες :
A*M==S και L*O==S