-
Notifications
You must be signed in to change notification settings - Fork 100
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
Added givens #351
base: master
Are you sure you want to change the base?
Added givens #351
Conversation
Codecov Report
@@ Coverage Diff @@
## master #351 +/- ##
==========================================
- Coverage 74.36% 73.82% -0.54%
==========================================
Files 55 57 +2
Lines 4891 5211 +320
==========================================
+ Hits 3637 3847 +210
- Misses 1254 1364 +110
Continue to review full report at Codecov.
|
Ping ? |
I can try to look at this. @lgremy would you mind helping with this as well? |
Hi, Sorry for the very late reply. I do not have time to look carefully at the code, but I have two remarks, especially about the running time and the lazyness approach.
Householder inside LLL is supposed to be faster than LLL using GSO for dimensions larger than 160-170 (see Gilles Villard's tests), so I will be not surprised if it would be the same for Givens, and this is what we can expect from your observation
I will continue to look at the code, but is there any reference describing how to use Givens inside LLL? Thanks. |
Dear @lgremy, (and others) I am sorry for leaving out the most important part [comments/references] of the Givens implementation. Next week I try to find time to look at my code again and putting appropriate examples, references and comments. Koen |
What's new
gso_givens.h
andgso_givens.cpp
.test_lll_givens.cpp
in the tests folder.The givens GSO class should be compatible with LLL, but not (yet) with Wrapper. I didn't check whether BKZ can run on this givens GSO class.
Issues:
l_givens
are mainly Givens-rotations, which are column operations. @lducas suggested to store the transpose ofl_givens
instead ofl_givens
itself. However, then the 'lazy' size-reductions occur as column operations. So, the main question is: Should we storel_givens
or the transpose of it? What is the fastest way?Speed
test_benchmark.cpp
which tests various big cases. I will remove this one -- if you want to check for the timings yourself, run it separately.