Re: [sage-support] Size reduced of a basis

2021-04-20 Thread Santanu Sarkar
Hi Martin,
Thank you so much for your kind help. It works!

Kind regards,
Santanu

On Mon, 22 Mar 2021 at 19:49, 'Martin R. Albrecht' via sage-support <
sage-support@googlegroups.com> wrote:

> Hi Santanu,
>
> With very high precision it goes through:
>
> #+begin_src jupyter-python :kernel sagemath
> A = random_matrix(ZZ, 10, 10, x=-2^500, y=2^500)
> A.echelonize() # make it interesting by turning into HNF
>
> from fpylll import FPLLL, IntegerMatrix, GSO, LLL
> B = IntegerMatrix.from_matrix(A)
> FPLLL.set_precision(2) # 2 bits of precision!
> M = GSO.Mat(B, float_type="mpfr")
> M.update_gso()
> L = LLL.Reduction(M)
> L.size_reduction()
> C = B.to_matrix(matrix(ZZ, 10, 10)) # back to Sage's format
> #+end_src
>
> HNF is pretty bad for precision, so it’s an extreme example.
>
> Cheers,
> Martin
>
>
> Santanu Sarkar  writes:
> > Hi Martin,
> >Thanks a lot. For entries upto 500 bits, it works fine.
> > But for large entries, I am getting error.
> > A = random_matrix(ZZ, 10, 10, x=-2^550, y=2^550)
> > File "abc.sage.py", line 28, in 
> > L.size_reduction()
> >   File "src/fpylll/fplll/lll.pyx", line 379, in
> > fpylll.fplll.lll.LLLReduction.size_reduction
> > fpylll.util.ReductionError: b'success'
> >
> > Kind regards,
> > Santanu
> >
> >
> > On Wed, 17 Mar 2021 at 15:47, 'Martin R. Albrecht' via sage-support <
> > sage-support@googlegroups.com> wrote:
> >
> >> Hi there,
> >>
> >> You can do it by calling down to FPyLLL which (together with NTL) powers
> >> lattice reduction in Sage. Here’s an example:
> >>
> >> #+begin_src jupyter-python :kernel sagemath
> >> A = random_matrix(ZZ, 10, 10, x=-1, y=2)
> >> A.echelonize() # make it interesting by turning into HNF
> >> print("# Input")
> >> print(A)
> >> print()
> >>
> >> from fpylll import IntegerMatrix, GSO, LLL
> >> B = IntegerMatrix.from_matrix(A)
> >> M = GSO.Mat(B)
> >> M.update_gso()
> >> L = LLL.Reduction(M)
> >> L.size_reduction()
> >> C = B.to_matrix(matrix(ZZ, 10, 10)) # back to Sage's format
> >>
> >> print("# Output")
> >> print(C)
> >> print()
> >> #+end_src
> >>
> >> #+RESULTS:
> >> #+begin_example
> >> # Input
> >> [  1   0   0   0   0   0   0   0   0  41]
> >> [  0   1   0   0   0   0   0   0   0  34]
> >> [  0   0   1   0   0   0   0   0   1  27]
> >> [  0   0   0   1   0   0   0   0   1  96]
> >> [  0   0   0   0   1   0   0   0   0  38]
> >> [  0   0   0   0   0   1   0   0   1  78]
> >> [  0   0   0   0   0   0   1   0   1   1]
> >> [  0   0   0   0   0   0   0   1   1  91]
> >> [  0   0   0   0   0   0   0   0   2  69]
> >> [  0   0   0   0   0   0   0   0   0 100]
> >>
> >> # Output
> >> [  1   0   0   0   0   0   0   0   0  41]
> >> [ -1   1   0   0   0   0   0   0   0  -7]
> >> [ -1   0   1   0   0   0   0   0   1 -14]
> >> [ -1  -1  -1   1   0   0   0   0   0  -6]
> >> [ -1   0   0   0   1   0   0   0   0  -3]
> >> [  0   0   0  -1   0   1   0   0   0 -18]
> >> [  0   0   0   0   0   0   1   0   1   1]
> >> [  0   0   0  -1   0   0   0   1   0  -5]
> >> [  1   0   0  -1   0   0   0   0   1  14]
> >> [  0   0   0  -1   0   0   0   0  -1   4]
> >> #+end_example
> >>
> >>
> >> Cheers,
> >> Martin
> >>
> >> Santanu Sarkar  writes:
> >> > Dear all,
> >> >In Sagemath, is it possible to change a basis
> >> > of a lattice which is size reduced? That is my interest is only on
> >> > 1st condition of LLL basis.
> >> >
> >> >
> >> > Kind regards,
> >> > Santanu
> >>
> >>
> >> --
> >>
> >> _pgp: https://keybase.io/martinralbrecht
> >> _www: https://malb.io
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "sage-support" group.
> >> To unsubscribe from this group and stop receiving emails from it, send
> an
> >> email to sage-support+unsubscr...@googlegroups.com.
> >> To view this discussion on the web visit
> >>
> https://groups.google.com/d/msgid/sage-support/871rcet773.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-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-support+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sage-support/87mtuwzrbw.fsf%40googlemail.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/CAOe8sPLNzAmFsTLRvK-GEkFcbkutV0%2BkB%3DoZYHda8i6MzZBpJA%40mail.gmail.com.


Re: [sage-support] Size reduced of a basis

2021-03-22 Thread 'Martin R. Albrecht' via sage-support
Hi Santanu,

With very high precision it goes through:

#+begin_src jupyter-python :kernel sagemath
A = random_matrix(ZZ, 10, 10, x=-2^500, y=2^500)
A.echelonize() # make it interesting by turning into HNF

from fpylll import FPLLL, IntegerMatrix, GSO, LLL
B = IntegerMatrix.from_matrix(A)
FPLLL.set_precision(2) # 2 bits of precision!
M = GSO.Mat(B, float_type="mpfr")
M.update_gso()
L = LLL.Reduction(M)
L.size_reduction()
C = B.to_matrix(matrix(ZZ, 10, 10)) # back to Sage's format
#+end_src

HNF is pretty bad for precision, so it’s an extreme example.

Cheers,
Martin


Santanu Sarkar  writes:
> Hi Martin,
>Thanks a lot. For entries upto 500 bits, it works fine.
> But for large entries, I am getting error.
> A = random_matrix(ZZ, 10, 10, x=-2^550, y=2^550)
> File "abc.sage.py", line 28, in 
> L.size_reduction()
>   File "src/fpylll/fplll/lll.pyx", line 379, in
> fpylll.fplll.lll.LLLReduction.size_reduction
> fpylll.util.ReductionError: b'success'
>
> Kind regards,
> Santanu
>
>
> On Wed, 17 Mar 2021 at 15:47, 'Martin R. Albrecht' via sage-support <
> sage-support@googlegroups.com> wrote:
>
>> Hi there,
>>
>> You can do it by calling down to FPyLLL which (together with NTL) powers
>> lattice reduction in Sage. Here’s an example:
>>
>> #+begin_src jupyter-python :kernel sagemath
>> A = random_matrix(ZZ, 10, 10, x=-1, y=2)
>> A.echelonize() # make it interesting by turning into HNF
>> print("# Input")
>> print(A)
>> print()
>>
>> from fpylll import IntegerMatrix, GSO, LLL
>> B = IntegerMatrix.from_matrix(A)
>> M = GSO.Mat(B)
>> M.update_gso()
>> L = LLL.Reduction(M)
>> L.size_reduction()
>> C = B.to_matrix(matrix(ZZ, 10, 10)) # back to Sage's format
>>
>> print("# Output")
>> print(C)
>> print()
>> #+end_src
>>
>> #+RESULTS:
>> #+begin_example
>> # Input
>> [  1   0   0   0   0   0   0   0   0  41]
>> [  0   1   0   0   0   0   0   0   0  34]
>> [  0   0   1   0   0   0   0   0   1  27]
>> [  0   0   0   1   0   0   0   0   1  96]
>> [  0   0   0   0   1   0   0   0   0  38]
>> [  0   0   0   0   0   1   0   0   1  78]
>> [  0   0   0   0   0   0   1   0   1   1]
>> [  0   0   0   0   0   0   0   1   1  91]
>> [  0   0   0   0   0   0   0   0   2  69]
>> [  0   0   0   0   0   0   0   0   0 100]
>>
>> # Output
>> [  1   0   0   0   0   0   0   0   0  41]
>> [ -1   1   0   0   0   0   0   0   0  -7]
>> [ -1   0   1   0   0   0   0   0   1 -14]
>> [ -1  -1  -1   1   0   0   0   0   0  -6]
>> [ -1   0   0   0   1   0   0   0   0  -3]
>> [  0   0   0  -1   0   1   0   0   0 -18]
>> [  0   0   0   0   0   0   1   0   1   1]
>> [  0   0   0  -1   0   0   0   1   0  -5]
>> [  1   0   0  -1   0   0   0   0   1  14]
>> [  0   0   0  -1   0   0   0   0  -1   4]
>> #+end_example
>>
>>
>> Cheers,
>> Martin
>>
>> Santanu Sarkar  writes:
>> > Dear all,
>> >In Sagemath, is it possible to change a basis
>> > of a lattice which is size reduced? That is my interest is only on
>> > 1st condition of LLL basis.
>> >
>> >
>> > Kind regards,
>> > Santanu
>>
>>
>> --
>>
>> _pgp: https://keybase.io/martinralbrecht
>> _www: https://malb.io
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sage-support" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to sage-support+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/sage-support/871rcet773.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-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/87mtuwzrbw.fsf%40googlemail.com.


Re: [sage-support] Size reduced of a basis

2021-03-19 Thread Santanu Sarkar
Hi Martin,
   Thanks a lot. For entries upto 500 bits, it works fine.
But for large entries, I am getting error.
A = random_matrix(ZZ, 10, 10, x=-2^550, y=2^550)
File "abc.sage.py", line 28, in 
L.size_reduction()
  File "src/fpylll/fplll/lll.pyx", line 379, in
fpylll.fplll.lll.LLLReduction.size_reduction
fpylll.util.ReductionError: b'success'

Kind regards,
Santanu


On Wed, 17 Mar 2021 at 15:47, 'Martin R. Albrecht' via sage-support <
sage-support@googlegroups.com> wrote:

> Hi there,
>
> You can do it by calling down to FPyLLL which (together with NTL) powers
> lattice reduction in Sage. Here’s an example:
>
> #+begin_src jupyter-python :kernel sagemath
> A = random_matrix(ZZ, 10, 10, x=-1, y=2)
> A.echelonize() # make it interesting by turning into HNF
> print("# Input")
> print(A)
> print()
>
> from fpylll import IntegerMatrix, GSO, LLL
> B = IntegerMatrix.from_matrix(A)
> M = GSO.Mat(B)
> M.update_gso()
> L = LLL.Reduction(M)
> L.size_reduction()
> C = B.to_matrix(matrix(ZZ, 10, 10)) # back to Sage's format
>
> print("# Output")
> print(C)
> print()
> #+end_src
>
> #+RESULTS:
> #+begin_example
> # Input
> [  1   0   0   0   0   0   0   0   0  41]
> [  0   1   0   0   0   0   0   0   0  34]
> [  0   0   1   0   0   0   0   0   1  27]
> [  0   0   0   1   0   0   0   0   1  96]
> [  0   0   0   0   1   0   0   0   0  38]
> [  0   0   0   0   0   1   0   0   1  78]
> [  0   0   0   0   0   0   1   0   1   1]
> [  0   0   0   0   0   0   0   1   1  91]
> [  0   0   0   0   0   0   0   0   2  69]
> [  0   0   0   0   0   0   0   0   0 100]
>
> # Output
> [  1   0   0   0   0   0   0   0   0  41]
> [ -1   1   0   0   0   0   0   0   0  -7]
> [ -1   0   1   0   0   0   0   0   1 -14]
> [ -1  -1  -1   1   0   0   0   0   0  -6]
> [ -1   0   0   0   1   0   0   0   0  -3]
> [  0   0   0  -1   0   1   0   0   0 -18]
> [  0   0   0   0   0   0   1   0   1   1]
> [  0   0   0  -1   0   0   0   1   0  -5]
> [  1   0   0  -1   0   0   0   0   1  14]
> [  0   0   0  -1   0   0   0   0  -1   4]
> #+end_example
>
>
> Cheers,
> Martin
>
> Santanu Sarkar  writes:
> > Dear all,
> >In Sagemath, is it possible to change a basis
> > of a lattice which is size reduced? That is my interest is only on
> > 1st condition of LLL basis.
> >
> >
> > Kind regards,
> > Santanu
>
>
> --
>
> _pgp: https://keybase.io/martinralbrecht
> _www: https://malb.io
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-support+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sage-support/871rcet773.fsf%40googlemail.com
> .
>

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


Re: [sage-support] Size reduced of a basis

2021-03-17 Thread 'Martin R. Albrecht' via sage-support
Hi there,

You can do it by calling down to FPyLLL which (together with NTL) powers 
lattice reduction in Sage. Here’s an example:

#+begin_src jupyter-python :kernel sagemath
A = random_matrix(ZZ, 10, 10, x=-1, y=2)
A.echelonize() # make it interesting by turning into HNF
print("# Input")
print(A)
print()

from fpylll import IntegerMatrix, GSO, LLL
B = IntegerMatrix.from_matrix(A)
M = GSO.Mat(B)
M.update_gso()
L = LLL.Reduction(M)
L.size_reduction()
C = B.to_matrix(matrix(ZZ, 10, 10)) # back to Sage's format

print("# Output")
print(C)
print()
#+end_src

#+RESULTS:
#+begin_example
# Input
[  1   0   0   0   0   0   0   0   0  41]
[  0   1   0   0   0   0   0   0   0  34]
[  0   0   1   0   0   0   0   0   1  27]
[  0   0   0   1   0   0   0   0   1  96]
[  0   0   0   0   1   0   0   0   0  38]
[  0   0   0   0   0   1   0   0   1  78]
[  0   0   0   0   0   0   1   0   1   1]
[  0   0   0   0   0   0   0   1   1  91]
[  0   0   0   0   0   0   0   0   2  69]
[  0   0   0   0   0   0   0   0   0 100]

# Output
[  1   0   0   0   0   0   0   0   0  41]
[ -1   1   0   0   0   0   0   0   0  -7]
[ -1   0   1   0   0   0   0   0   1 -14]
[ -1  -1  -1   1   0   0   0   0   0  -6]
[ -1   0   0   0   1   0   0   0   0  -3]
[  0   0   0  -1   0   1   0   0   0 -18]
[  0   0   0   0   0   0   1   0   1   1]
[  0   0   0  -1   0   0   0   1   0  -5]
[  1   0   0  -1   0   0   0   0   1  14]
[  0   0   0  -1   0   0   0   0  -1   4]
#+end_example


Cheers,
Martin

Santanu Sarkar  writes:
> Dear all,
>In Sagemath, is it possible to change a basis
> of a lattice which is size reduced? That is my interest is only on
> 1st condition of LLL basis.
>
>
> Kind regards,
> Santanu


-- 

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

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