- l3.cpp (L3 Reduction for Integral Basis)
- l3_r.cpp (L3 Reduction for Rational/Decimal Basis)
- rational.cpp (Rational numbers implementation)
- l3_properties_satisfied.jpg (Properties Satisfied after L3 Reduction)
g++ -std=c++14 fileName.cpp -o fileName
fileName
Modifiy the following variables in int main() to provide input as per need.
std::vector<std::vector<int>> basis;
basis = {{201, 37}, {1648, 297}}; //set Column wise //basis[i] should give the i-th column
double delta = 0.99;
- Factoring polynomials with rational coefficients
- Lattice Basis Reduction Improved Practical Algorithm and Solving Subset Sum Problem
Part of Independent Project titled "An Experimental Study of BKZ Algorithm"" at IIIT Delhi in Monsoon 2022 Semester under the guidance of Dr. Subhabrata Samajder
- The l3_r.cpp is not running properly.
- The root cause for this is identified to be the imprecisions in convering
double
values toRational
values.- The current algorithm (based on idea of Continued Fractions) fails to represent a subset of
double
values using small integernumerator
anddenominator
.- During computations, these numerator and denominator values grows rapidly leading to
integer overflow
, eventually causing code termination.