oILAB
Loading...
Searching...
No Matches
LLL.h
Go to the documentation of this file.
1/* This file is part of gbLAB.
2 *
3 * gbLAB is distributed without any warranty under the MIT License.
4 */
5
6
7#ifndef gbLAB_LLL_h_
8#define gbLAB_LLL_h_
9
10#include <cmath>
11#include <algorithm> // std::max
12#include <utility> // std::swap
13#include "Eigen/Dense"
14#include <iostream>
15// http://www.arageli.org/download
16// https://www.mathworks.com/matlabcentral/fileexchange/49457-lattice-reduction-mimo?focused=3859922&tab=function
17
18namespace oILAB {
22class LLL {
23
24 /**********************************************************************/
25 void lll_gram_schmidt_int(const int &k);
26
27 /**********************************************************************/
28 void lll_size_reduction_int(const int &k, const int &l);
29
30 /**********************************************************************/
31 void lll_interchange_int(const int &k, const int &k_max);
32
33 Eigen::MatrixXi B;
34 Eigen::VectorXi d;
35 Eigen::MatrixXi H;
36 Eigen::MatrixXi Lambda;
37
38public:
39 template <int m, int n> LLL(const Eigen::Matrix<int, m, n> &B_in);
40 };
41
42 } // namespace oILAB
43#endif
void lll_interchange_int(const int &k, const int &k_max)
Definition LLL.cpp:52
void lll_size_reduction_int(const int &k, const int &l)
Definition LLL.cpp:36
Eigen::VectorXi d
Definition LLL.h:34
Eigen::MatrixXi B
Definition LLL.h:33
Eigen::MatrixXi Lambda
Definition LLL.h:36
Eigen::MatrixXi H
Definition LLL.h:35
void lll_gram_schmidt_int(const int &k)
Definition LLL.cpp:20