#include <algorithm>
#include <climits>
#include <cmath>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <fstream>
#include <iostream>
#include <limits>
#include <sstream>
#include <stdexcept>
#include <string>
#include <sys/resource.h>
#include <sys/time.h>
#include <unistd.h>
#include "fplll_config.h"
#include <gmp.h>
#include <mpfr.h>
#include "nr/dpe.h"
Go to the source code of this file.
|
| enum | RedStatus {
RED_SUCCESS = 0
, RED_GSO_FAILURE = 2
, RED_BABAI_FAILURE = 3
, RED_LLL_FAILURE = 4
,
RED_ENUM_FAILURE = 5
, RED_BKZ_FAILURE = 6
, RED_BKZ_TIME_LIMIT = 7
, RED_BKZ_LOOPS_LIMIT = 8
,
RED_HLLL_FAILURE = 9
, RED_HLLL_NORM_FAILURE = 10
, RED_HLLL_SR_FAILURE = 11
, RED_URL_ERR = 12
,
RED_STATUS_MAX = 13
} |
| |
| enum | LLLMethod { LM_WRAPPER = 0
, LM_PROVED = 1
, LM_HEURISTIC = 2
, LM_FAST = 3
} |
| |
| enum | IntType { ZT_MPZ = 0
, ZT_LONG = 1
, ZT_DOUBLE = 2
} |
| |
| enum | FloatType {
FT_DEFAULT = 0
, FT_DOUBLE = 1
, FT_LONG_DOUBLE = 2
, FT_DPE = 3
,
FT_DD = 4
, FT_QD = 5
, FT_MPFR = 6
} |
| |
| enum | LLLFlags { LLL_VERBOSE = 1
, LLL_EARLY_RED = 2
, LLL_SIEGEL = 4
, LLL_DEFAULT = 0
} |
| |
| enum | SVPMethod { SVPM_FAST = 0
, SVPM_PROVED = 2
} |
| |
| enum | CVPMethod { CVPM_FAST = 0
, CVPM_PROVED = 2
} |
| |
| enum | SVPFlags { SVP_DEFAULT = 0
, SVP_VERBOSE = 1
, SVP_OVERRIDE_BND = 2
, SVP_DUAL = 4
} |
| |
| enum | CVPFlags { CVP_DEFAULT = SVP_DEFAULT
, CVP_VERBOSE = SVP_VERBOSE
} |
| |
| enum | BKZFlags {
BKZ_DEFAULT = 0
, BKZ_VERBOSE = 1
, BKZ_NO_LLL = 2
, BKZ_MAX_LOOPS = 4
,
BKZ_MAX_TIME = 8
, BKZ_BOUNDED_LLL = 0x10
, BKZ_AUTO_ABORT = 0x20
, BKZ_DUMP_GSO = 0x40
,
BKZ_GH_BND = 0x80
, BKZ_SD_VARIANT = 0x100
, BKZ_SLD_RED = 0x200
} |
| |
| enum | HKZFlags { HKZ_DEFAULT = 0
, HKZ_VERBOSE = 1
} |
| |
| enum | PrunerMetric { PRUNER_METRIC_PROBABILITY_OF_SHORTEST = 0
, PRUNER_METRIC_EXPECTED_SOLUTIONS = 1
} |
| |
| enum | PrunerFlags {
PRUNER_CVP
, PRUNER_START_FROM_INPUT = 0x2
, PRUNER_GRADIENT = 0x4
, PRUNER_NELDER_MEAD = 0x8
,
PRUNER_VERBOSE = 0x10
, PRUNER_HALF = 0x20
, PRUNER_SINGLE = 0x40
} |
| |
|
| const int | CPU_SIZE = 64 |
| |
| const int | CPU_SIZE_1 = 53 |
| |
| const double | MAX_LONG_FAST = 0x1p53 |
| |
| const long int | EXPO_MAX = 53 |
| |
| const int | MAX_EXP_DOUBLE = 1000 |
| |
| const int | PREC_DOUBLE = 53 |
| |
| const int | PREC_DD = 106 |
| |
| const int | PREC_QD = 212 |
| |
| const double | LLL_DEF_DELTA = 0.99 |
| |
| const double | LLL_DEF_ETA = 0.51 |
| |
| const double | LLL_DEF_EPSILON = 0.01 |
| |
| const int | SIZE_RED_FAILURE_THRESH = 5 |
| |
| const double | HLLL_DEF_THETA = 0.001 |
| |
| const double | HLLL_DEF_C = 0.1 |
| |
| const char *const | RED_STATUS_STR [RED_STATUS_MAX] |
| |
| const char *const | LLL_METHOD_STR [6] = {"wrapper", "proved", "heuristic", "fast"} |
| |
| const char *const | HLLL_METHOD_STR [4] = {"wrapper", "proved", "", "fast"} |
| |
| const char *const | INT_TYPE_STR [5] = {"mpz", "long", "double"} |
| |
| const char *const | FLOAT_TYPE_STR [7] = {"", "double", "long double", "dpe", "dd", "qd", "mpfr"} |
| |
| const double | BKZ_DEF_AUTO_ABORT_SCALE = 1.0 |
| |
| const int | BKZ_DEF_AUTO_ABORT_MAX_NO_DEC = 5 |
| |
| const double | BKZ_DEF_GH_FACTOR = 1.1 |
| |
| const double | BKZ_DEF_MIN_SUCCESS_PROBABILITY = 0.5 |
| |
| const int | BKZ_DEF_RERANDOMIZATION_DENSITY = 3 |
| |
◆ FPLLL_ABORT
Value: { \
cerr << "fplll: " << x << endl; \
abort(); \
}
◆ FPLLL_BEGIN_NAMESPACE
| #define FPLLL_BEGIN_NAMESPACE |
◆ FPLLL_CHECK
| #define FPLLL_CHECK |
( |
|
x, |
|
|
|
y |
|
) |
| |
Value: { \
if (!(x)) \
FPLLL_ABORT(y); \
}
◆ FPLLL_DEBUG_ABORT
| #define FPLLL_DEBUG_ABORT |
( |
|
x | ) |
|
◆ FPLLL_DEBUG_CHECK
| #define FPLLL_DEBUG_CHECK |
( |
|
x | ) |
|
◆ FPLLL_DEFAULT_STRATEGY
| #define FPLLL_DEFAULT_STRATEGY "" |
◆ FPLLL_DEFAULT_STRATEGY_PATH
| #define FPLLL_DEFAULT_STRATEGY_PATH "" |
◆ FPLLL_END_NAMESPACE
| #define FPLLL_END_NAMESPACE } |
◆ FPLLL_INFO
Value: { \
cerr << x << endl; \
}
◆ FPLLL_TRACE
◆ FPLLL_TRACE_IN
| #define FPLLL_TRACE_IN |
( |
|
x | ) |
|
◆ FPLLL_WITH_DPE
◆ FPLLL_WITH_GETRUSAGE
| #define FPLLL_WITH_GETRUSAGE |
◆ FPLLL_WITH_LONG_DOUBLE
| #define FPLLL_WITH_LONG_DOUBLE |
◆ FPLLL_WITH_ZDOUBLE
| #define FPLLL_WITH_ZDOUBLE |
◆ FPLLL_WITH_ZLONG
◆ PRUNER_ZEALOUS
◆ BKZFlags
| Enumerator |
|---|
| BKZ_DEFAULT | |
| BKZ_VERBOSE | |
| BKZ_NO_LLL | |
| BKZ_MAX_LOOPS | |
| BKZ_MAX_TIME | |
| BKZ_BOUNDED_LLL | |
| BKZ_AUTO_ABORT | |
| BKZ_DUMP_GSO | |
| BKZ_GH_BND | |
| BKZ_SD_VARIANT | |
| BKZ_SLD_RED | |
◆ CVPFlags
| Enumerator |
|---|
| CVP_DEFAULT | |
| CVP_VERBOSE | |
◆ CVPMethod
| Enumerator |
|---|
| CVPM_FAST | |
| CVPM_PROVED | |
◆ FloatType
| Enumerator |
|---|
| FT_DEFAULT | |
| FT_DOUBLE | |
| FT_LONG_DOUBLE | |
| FT_DPE | |
| FT_DD | |
| FT_QD | |
| FT_MPFR | |
◆ HKZFlags
| Enumerator |
|---|
| HKZ_DEFAULT | |
| HKZ_VERBOSE | |
◆ IntType
| Enumerator |
|---|
| ZT_MPZ | |
| ZT_LONG | |
| ZT_DOUBLE | |
◆ LLLFlags
| Enumerator |
|---|
| LLL_VERBOSE | |
| LLL_EARLY_RED | |
| LLL_SIEGEL | |
| LLL_DEFAULT | |
◆ LLLMethod
| Enumerator |
|---|
| LM_WRAPPER | |
| LM_PROVED | |
| LM_HEURISTIC | |
| LM_FAST | |
◆ PrunerFlags
| Enumerator |
|---|
| PRUNER_CVP | |
| PRUNER_START_FROM_INPUT | |
| PRUNER_GRADIENT | |
| PRUNER_NELDER_MEAD | |
| PRUNER_VERBOSE | |
| PRUNER_HALF | |
| PRUNER_SINGLE | |
◆ PrunerMetric
| Enumerator |
|---|
| PRUNER_METRIC_PROBABILITY_OF_SHORTEST | |
| PRUNER_METRIC_EXPECTED_SOLUTIONS | |
◆ RedStatus
| Enumerator |
|---|
| RED_SUCCESS | |
| RED_GSO_FAILURE | |
| RED_BABAI_FAILURE | |
| RED_LLL_FAILURE | |
| RED_ENUM_FAILURE | |
| RED_BKZ_FAILURE | |
| RED_BKZ_TIME_LIMIT | |
| RED_BKZ_LOOPS_LIMIT | |
| RED_HLLL_FAILURE | |
| RED_HLLL_NORM_FAILURE | |
| RED_HLLL_SR_FAILURE | |
| RED_URL_ERR | |
| RED_STATUS_MAX | |
◆ SVPFlags
| Enumerator |
|---|
| SVP_DEFAULT | |
| SVP_VERBOSE | |
| SVP_OVERRIDE_BND | |
| SVP_DUAL | |
◆ SVPMethod
| Enumerator |
|---|
| SVPM_FAST | |
| SVPM_PROVED | |
◆ BKZ_DEF_AUTO_ABORT_MAX_NO_DEC
| const int BKZ_DEF_AUTO_ABORT_MAX_NO_DEC = 5 |
◆ BKZ_DEF_AUTO_ABORT_SCALE
| const double BKZ_DEF_AUTO_ABORT_SCALE = 1.0 |
◆ BKZ_DEF_GH_FACTOR
| const double BKZ_DEF_GH_FACTOR = 1.1 |
◆ BKZ_DEF_MIN_SUCCESS_PROBABILITY
| const double BKZ_DEF_MIN_SUCCESS_PROBABILITY = 0.5 |
◆ BKZ_DEF_RERANDOMIZATION_DENSITY
| const int BKZ_DEF_RERANDOMIZATION_DENSITY = 3 |
◆ CPU_SIZE
◆ CPU_SIZE_1
| const int CPU_SIZE_1 = 53 |
◆ EXPO_MAX
| const long int EXPO_MAX = 53 |
◆ FLOAT_TYPE_STR
| const char* const FLOAT_TYPE_STR[7] = {"", "double", "long double", "dpe", "dd", "qd", "mpfr"} |
◆ HLLL_DEF_C
| const double HLLL_DEF_C = 0.1 |
◆ HLLL_DEF_THETA
| const double HLLL_DEF_THETA = 0.001 |
◆ HLLL_METHOD_STR
| const char* const HLLL_METHOD_STR[4] = {"wrapper", "proved", "", "fast"} |
◆ INT_TYPE_STR
| const char* const INT_TYPE_STR[5] = {"mpz", "long", "double"} |
◆ LLL_DEF_DELTA
| const double LLL_DEF_DELTA = 0.99 |
◆ LLL_DEF_EPSILON
| const double LLL_DEF_EPSILON = 0.01 |
◆ LLL_DEF_ETA
| const double LLL_DEF_ETA = 0.51 |
◆ LLL_METHOD_STR
| const char* const LLL_METHOD_STR[6] = {"wrapper", "proved", "heuristic", "fast"} |
◆ MAX_EXP_DOUBLE
| const int MAX_EXP_DOUBLE = 1000 |
◆ MAX_LONG_FAST
| const double MAX_LONG_FAST = 0x1p53 |
◆ PREC_DD
◆ PREC_DOUBLE
| const int PREC_DOUBLE = 53 |
◆ PREC_QD
◆ RED_STATUS_STR
Initial value:= {
"success",
"",
"infinite number in GSO",
"infinite loop in babai",
"infinite loop in LLL",
"error in SVP solver",
"error in BKZ",
"time limit exceeded in BKZ",
"loops limit exceeded in BKZ",
"error in HLLL",
"increase of the norm",
"error in weak size reduction",
"Please see https://github.com/fplll/fplll/wiki/fplll-errors-FAQ for more information."}
◆ SIZE_RED_FAILURE_THRESH
| const int SIZE_RED_FAILURE_THRESH = 5 |