reimplement wrapper.cpp under algorithms
Reimplementing https://github.com/fplll/fplll/blob/master/fplll/wrapper.cpp in Python would
- help to check if the API is complete
- as an example how to use fpylll
- as a template from which users can develop their own variants
@malb it seems damien's repository is no longer available, are there other links to the same?
Fixed
@malb I've been going through the documentation and code base, correct me if I'm wrong, solving this issue would require: The implementation of fast_lll(..), heuristic_lll(..) and proved_lll(..) which would then be called accordingly by the main function lll(..)
Another technicality: The data structures that were used in wrapper.cpp are those defined in fpll/fpll/nr, how are we doing representing the same in python, for example are we porting numpy arrays to matrix objects ?
The equivalent of the functions fast_lll etc is already implemented as options in LLL.reduction, see it's documentation. Maybe start with a Python programme that first tries to run LLL with double precision and if that fails will switch to long double, to see how things fit together. You don't need to implement your own matrices, we already have FPLLL's matrices. I suggest you play a bit with FP(Y)LLL to understand what it does and how. You could e.g. follow the labs here https://www.maths.ox.ac.uk/groups/cryptography/spring-school-lattice-based-cryptography