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

An implementation of Nguyễn and Stehlé's L2 algorithm for lattice reduction #4053

Merged
merged 36 commits into from
Aug 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
4ae38f1
Gram matrix.
pleroy Jul 20, 2024
a4ca6a8
Skeleton.
pleroy Jul 20, 2024
006421a
Complete skeleton.
pleroy Jul 21, 2024
76171a7
Merge branch 'master' into L2
pleroy Jul 25, 2024
85c672d
Merge branch 'master' into L2
pleroy Jul 28, 2024
9d3fc23
Bibliography NS09.
pleroy Jul 28, 2024
d5cb130
Improve the (incomplete) algorithm and a test.
pleroy Jul 28, 2024
551ea84
Fix some compilation errors.
pleroy Jul 28, 2024
b533f9f
Zero vector.
pleroy Jul 28, 2024
8006acb
Support for s and μ.
pleroy Jul 28, 2024
dc64076
Merge branch 'master' into L2
pleroy Jul 28, 2024
eafc788
Vector insertion.
pleroy Jul 28, 2024
30f19a8
Merge branch 'master' into L2
pleroy Jul 28, 2024
2a8c7c9
Merge branch 'master' into L2
pleroy Jul 29, 2024
decfd6f
Part of the reduction.
pleroy Jul 29, 2024
ad87073
Merge branch 'master' into L2
pleroy Jul 30, 2024
264cc91
Update G.
pleroy Jul 30, 2024
7eff043
A mostly complete implementation.
pleroy Jul 30, 2024
a28a832
Shorter identifiers.
pleroy Jul 30, 2024
d8004ba
More naming simplification.
pleroy Jul 30, 2024
52a8195
Proper insertion in G.
pleroy Jul 31, 2024
0ff7a62
Fix a few bugs.
pleroy Jul 31, 2024
576add6
Fix more bugs.
pleroy Jul 31, 2024
aef020b
Triangular matrices.
pleroy Jul 31, 2024
13f42fc
Parameter ordering and traces.
pleroy Jul 31, 2024
325c4c2
The update of G is strangely broken.
pleroy Jul 31, 2024
b66c389
Avoid integer overflows and add DCHECKs.
pleroy Aug 1, 2024
cdfa27f
Surprise! the rotation is incorrect.
pleroy Aug 1, 2024
1e0687b
Bad alignment.
pleroy Aug 1, 2024
b40a421
One test passing.
pleroy Aug 1, 2024
562d8a6
Expected reduced matrix: some permutations and sign changes, and a di…
pleroy Aug 1, 2024
d66580d
Remove logging and add comments.
pleroy Aug 1, 2024
12540b5
Readying.
pleroy Aug 1, 2024
503d374
Move it, move it!
pleroy Aug 1, 2024
2b2754c
Lint.
pleroy Aug 1, 2024
d497879
After egg's review.
pleroy Aug 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion documentation/bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -1159,6 +1159,18 @@ @article{Newhall1989
volume = {45},
}

@article{NguyễnStehlé2009,
author = {Nguyễn, Phong Q. and Stehlé, Damien},
url = {https://doi.org/10.1137/070705702},
date = {2009},
doi = {10.1137/070705702},
journaltitle = {SIAM Journal on Computing},
number = {3},
pages = {874--903},
title = {An LLL Algorithm with Quadratic Complexity},
volume = {39},
}

@article{Nievergelt2004,
author = {Nievergelt, Yves},
date = {2004-12},
Expand Down Expand Up @@ -2080,7 +2092,7 @@ @inproceedings{WuZhang1991
}

@mvbook{Fontenelle1758,
author = {de Fontelle, Bernard},
author = {de Fontenelle, Bernard Le Bouyer},
publisher = {B.~Brunet},
date = {1758/1766},
doi = {10.3931/e-rara-25886},
Expand Down
Binary file modified documentation/bibliography.pdf
Binary file not shown.
6 changes: 6 additions & 0 deletions numerics/lattices.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,15 @@ template<typename Matrix>
requires two_dimensional<Matrix>
Matrix LenstraLenstraLovász(Matrix const& L);

// Same convention as above, but using a more efficient algorithm.
template<typename Matrix>
requires two_dimensional<Matrix>
Matrix NguyễnStehlé(Matrix const& L);

} // namespace internal

using internal::LenstraLenstraLovász;
using internal::NguyễnStehlé;

} // namespace _lattices
} // namespace numerics
Expand Down
Loading