2017-11-14 8 views
0

저는 C++을 사용해 연구를하고 있습니다. 그리고 NTL에서 LLL 함수를 사용하여 가장 짧은 벡터를 찾는 방법을 알고 싶습니다. 내 코드는 다음과 같습니다.C++을 사용하여 NTL에서 LLL 격자 축소를 구현하는 방법은 무엇입니까?

#include <NTL/ZZ.h> 
#include <NTL/matrix.h> 
#include <NTL/mat_ZZ.h> 
#include <NTL/vector.h> 

using namespace std; 
using namespace NTL; 

int main() 
{ 
    Mat<ZZ> B; 
    cin >> B; 
    cout << B << "\n"; 
    long LLL(ZZ& det2, mat_ZZ& B, long verbose = 0); 
    cout << B << "\n"; 
} 

그러나 B 행렬은 감소하지 않습니다. 뭐가 잘못 되었 니?

+0

했다 따를 수행 평생 학습 알고리즘을 실행하려면? http://www.shoup.net/ntl/doc/LLL.cpp.html – Morpheu5

+0

감사합니다. 나는 그것을 역시 발견했다. 문서이지만 LLL 알고리즘을 올바르게 구현하는 방법에 대한 샘플이 없습니다. –

답변

0

내가 올바른 라이브러리를 포함하고 LLL의 구현이 정확하지 않다는 것을 잊어 버린 것을 알고 있습니다.

이것은 잊어 버린 라이브러리입니다.

#include <NTL/LLL/h> 

이 도움말을한다, 이것은 나를 위해 두 번째 구글 결과

LLL_XD(B);