#include <array>
#include <cstdint>
#include <functional>
#include <memory>
Go to the source code of this file.
◆ FPLLL_EXTENUM_MAX_EXTENUM_DIM
#define FPLLL_EXTENUM_MAX_EXTENUM_DIM 1024 |
◆ cbfunc
◆ cbsol
◆ cbsubsol
◆ dual
◆ extenum_cb_process_sol
Callback function given to external enumeration library. Passes a new solution and its length to Evaluator, returning the new enumeration bound.
- Parameters
-
[in] | dist | - the norm of the new solution. |
[in] | sol | - a pointer to the new solution. |
- Returns
- The new enumeration bound.
◆ extenum_cb_process_subsol
Callback function given to external enumeration library.
Pass a subsolution and its partial length to Evaluator.
◆ extenum_cb_set_config
Callback function given to external enumeration library.
- Parameters
-
[out] | mu | - this is a pointer to an array 'enumf mu[mudim][mudim]'. Upon return, this array will contain the mu values for the lattice basis. Note that the array pointed to by this argument needs to be contiguous, otherwise there will be write errors. This means that the only acceptable arguments are pointers to variable-length arrays, 1D std::vector of dimension mudim*mudim, or 1D raw(resp. std::array) arrays of dimension mudim*mudim. |
[in] | mudim | - the number of rows(resp. columns) in the mu array. |
[out] | mutranspose | - when true, mutranspose is stored in the mu param. Otherwise, mu is stored in the mu param. Storing mutranspose allows for more efficient memory access, as accesses will be contiguous. |
[out] | rdiag | - a pointer to an array 'enumf rdiag[mudim]'. Upon return, this will contain the squared norms of the Gram-Schmidt vectors. |
[out] | pruning | - a pointer to an array 'enumf pruning[mudim]'. Upon return, this will contain the pruning coefficients for enumeration. In rigorous enumeration, this array will consist solely of 1's. |
◆ findsubsols
◆ fplll_extenum_enumf
◆ maxdist
◆ std::array< std::uint64_t, FPLLL_EXTENUM_MAX_EXTENUM_DIM >()
External enumeration function prototype.
- Parameters
-
dim | enumeration dimension. |
maxdist | initial enumeration bound. |
cbfunc | given callback function to get mu, rdiag, pruning |
cbsol | given callback function to pass solution and its length to Evaluator, it returns new enumeration bound |
cbsubsol | given callback function to pass subsolution and its length to Evaluator |
dual | do dual SVP enumeration |
findsubsols | find subsolutions and pass them to Evaluator |
- Returns
- number of nodes visited. Or ~uint64_t(0) when instance is not supported in which case fplll falls back to its own enumeration.