Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The integer vector that gives the shortest lattice vector #1

Open
shudi3 opened this issue Aug 14, 2024 · 1 comment
Open

The integer vector that gives the shortest lattice vector #1

shudi3 opened this issue Aug 14, 2024 · 1 comment

Comments

@shudi3
Copy link

shudi3 commented Aug 14, 2024

Hi!

Thanks for the great work! I'm trying to utilize some parts of the code in my research, however, I am confused: when I try to find the integer vector that corresponds to the shortest lattice vector, it doesn't give an integer solution.

Specifically, say, the generator matrix is G of dimension n* n in real numbers, then the lattice generated by this G is L=G*t, where t is integer vectors of size n. Now I want to find the shortest lattice vector y that lies in this lattice L, for which, I call the following function,

'y = shortest_vector(G::Matrix)'

It does give me a vector y, however, when I try to find the exact integer vector t_y that gives y, i.e., y=G*t_y, the code I use is

't_y=G\y'

I didn't get an integer solution of t_y. I think t_y is supposed to be an integer vector, right? Is the code working well in your opinion, or maybe it's related to other matrix operations (e.g. decomposition)? I'm not sure if the algorithms work well for any random lattices in the real field. Would be appreciated if someone could help!

@maolinml
Copy link
Contributor

maolinml commented Nov 3, 2024

Hey @shudi3 sorry i didn't see your question earlier. Please note that I am using the convention that the row vectors in G correspond to the base vectors in the lattice. In other words, the lattice is generated by transpose(G)*t for integer-valued t. So for the shortest vector 'y = shortest_vector(G::Matrix)', the corresponding integer-valued vector should be "transpose(G)\y". I hope this clarifies. Thank you for your interest in our package!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants