Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
Lattices/RLLL.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_RLLL_h_
9#define model_RLLL_h_
10
11#include <iostream>
12#include <iomanip>
13#include <cfloat> // FLT_EPSILON
14#include <Eigen/Dense>
15//#include <Eigen/QR>
16//#include <RoundEigen.h>
17//#include <SmithDecomposition.h>
18//#include <Lattice.h>
19//#include <RationalMatrix.h>
20//#include <LLL.h>
21
22
23namespace model
24{
25
26
27 class RLLL
28 {/* Ying Hung Gan, Cong Ling, Complex Lattice Reduction Algorithm for Low-Complexity Full-Diversity MIMO Detection
29 * IEEE TRANSACTIONS ON SIGNAL PROCESSING, VOL. 57, NO. 7, JULY 2009
30 */
31
32 typedef Eigen::MatrixXd MatrixType;
33 typedef Eigen::VectorXd VectorType;
34
35
36 MatrixType B;
37 Eigen::Matrix<long int,Eigen::Dynamic,Eigen::Dynamic> U;
38
39 /**********************************************************************/
40 void update(VectorType& H,
41 MatrixType& M,
42 const int& k);
43 /**********************************************************************/
44 void size_reduce(MatrixType& M,
45 const int& k,
46 const int& j);
47 public:
48
49
50 /**********************************************************************/
51 RLLL(const MatrixType& B0,
52 const double& delta) ;
53
54 /**********************************************************************/
55 const MatrixType& reducedBasis() const;
56 /**********************************************************************/
57 const Eigen::Matrix<long int,Eigen::Dynamic,Eigen::Dynamic>& unimodularMatrix() const;
58
59 };
60
61
62} // end namespace
63#endif
64
65
Eigen::Matrix3d M
RLLL(const MatrixType &B0, const double &delta)
const MatrixType & reducedBasis() const
const Eigen::Matrix< long int, Eigen::Dynamic, Eigen::Dynamic > & unimodularMatrix() const
int j
int k