Как реализовать LLL Lattice Reduction в NTL, используя c ++?

Я использую C ++ для проведения исследований. И мне интересно знать, как использовать функцию LLL в NTL, чтобы найти кратчайший вектор. Мой код выглядит следующим образом;

#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

Решение

Я понимаю, что забыл включить правильную библиотеку, и реализация LLL не верна.

Это библиотека, которую я забыл включить.

#include <NTL/LLL/h>

Чтобы выполнить алгоритм LLL, сделайте следующее

LLL_XD(B);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]