Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
Lattices/LLL.h
Go to the documentation of this file.
1/* This file is part of PIL, the Particle Interaction Library.
2 *
3 *
4 * MODEL is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8#ifndef model_LLL_h_
9#define model_LLL_h_
10
11#include <cmath>
12#include <algorithm> // std::max
13#include <utility> // std::swap
14#include <Eigen/Dense>
15#include <iostream>
16// http://www.arageli.org/download
17// https://www.mathworks.com/matlabcentral/fileexchange/49457-lattice-reduction-mimo?focused=3859922&tab=function
18
19
20namespace model
21{
25 class LLL
26 {
27
28
29
30 /**********************************************************************/
31 void lll_gram_schmidt_int(const int& k);
32
33 /**********************************************************************/
34 void lll_size_reduction_int(const int& k,
35 const int& l);
36
37 /**********************************************************************/
38 void lll_interchange_int(const int& k,
39 const int& k_max);
40
41 Eigen::MatrixXi B;
42 Eigen::VectorXi d;
43 Eigen::MatrixXi H;
44 Eigen::MatrixXi Lambda;
45
46
47 public:
48
49 template<int m,int n>
50 LLL(const Eigen::Matrix<int,m,n>& B_in) ;
51 };
52
53} // end namespace
54#endif
LLL(const Eigen::Matrix< int, m, n > &B_in)
int k