Hi there,

This should do the trick:

sage: from fpylll import *
sage: A = random_matrix(ZZ, 6, 90)
sage: U = IntegerMatrix.identity(6)
sage: B = LLL.reduction(IntegerMatrix.from_matrix(A), U).to_matrix(matrix(ZZ, 6,
90))
sage: U = U.to_matrix(matrix(ZZ, 6,6))
sage: B == U*A
True
sage: abs(U.det())
1

Cheers,
Martin


Santanu Sarkar <sarkar.santanu....@gmail.com> writes:
> Dear all,
>    I have a matrix M1 with integer entries with 90 rows and 6 columns.
> After applying LLL algorithm of M1, I get M2=M1.LLL(). I want to get
> corresponding unimodular transformation matrix T such that
> T*M1=M2. We can find T by
> T=M2*M1.pseudoinverse() or T== M1.solve_left(M2), but determinant of T
> becomes 0 i.e.,  T.det()=0.
> I want T.det()=1.
>
> Best regards,
> Santanu


-- 

_pgp: https://keybase.io/martinralbrecht
_www: https://malb.io

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/87h7rjmesx.fsf%40googlemail.com.

Reply via email to