Dear Martin, Thank you so much. It works! Can we make it faster? It took 17 seconds for my problem but M1.LLL() took only 3 seconds. Of course I understand we are calculating extra matrix U.
Thanks again for your help. Regards, Santanu On Sun, 27 Sep 2020 at 20:45, 'Martin R. Albrecht' via sage-devel < sage-devel@googlegroups.com> wrote: > 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 > . > -- 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/CAOe8sPLQ8%2BqnGwJq%3DCGTi5f-HcZAJc3%2Bgpe6sf-qASGnvPVRJw%40mail.gmail.com.