Dear Martin,
  Kindly see the following code.

from fpylll import (IntegerMatrix, LLL)
row=160
col=100
tt=cputime()
A = random_matrix(ZZ,  row,col,x=-2000, y=2000)
U = IntegerMatrix.identity(row)
tt=cputime()
B = LLL.reduction(IntegerMatrix.from_matrix(A), U).to_matrix(matrix(ZZ,
row,col))
print cputime(tt)
tt=cputime()
A=A.LLL()
print cputime(tt)

Lattice reduction takes 49 seconds in the first case and 7 seconds in the
second case.
Maybe I am missing something.

Best regards,
Santanu

On Tue, 29 Sep 2020 at 09:01, 'Martin R. Albrecht' via sage-devel <
sage-devel@googlegroups.com> wrote:

> Hi there,
>
> Sage is using FP(y)LLL under the hood, so there shouldn’t be that much of
> a performance difference. As far as I can see, both Sage and FPyLLL have
> the same defaults so it’s not clear to me why you see this performance
> difference.
>
> Cheers,
> Martin
>
>
> Santanu Sarkar <sarkar.santanu....@gmail.com> writes:
> > 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
> >> .
> >>
>
>
> --
>
> _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/87blhrm5uu.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/CAOe8sPJP1-ZWg9hnZvRfpU7x7nkyLw7%2BO%2BT8i0Sm8RevbVzQEA%40mail.gmail.com.

Reply via email to