main.h
Go to the documentation of this file.
1/* Copyright (C) 2005-2008 Damien Stehle.
2 Copyright (C) 2007 David Cade.
3 Copyright (C) 2008-2011 Xavier Pujol.
4
5 This file is part of fplll. fplll is free software: you
6 can redistribute it and/or modify it under the terms of the GNU Lesser
7 General Public License as published by the Free Software Foundation,
8 either version 2.1 of the License, or (at your option) any later version.
9
10 fplll is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with fplll. If not, see <http://www.gnu.org/licenses/>. */
17
18#ifndef FPLLL_MAIN_H
19#define FPLLL_MAIN_H
20
21#include "fplll.h"
22#include <cstring>
23
24#define ABORT_MSG(y) \
25 { \
26 cerr << "fplll: " << y << endl; \
27 exit(1); \
28 }
29#define CHECK(x, y) \
30 if (!(x)) \
31 ABORT_MSG(y)
32
33using namespace std;
34using namespace fplll;
35
37{
45};
46
47struct Options
48{
52 no_lll(false), block_size(0), bkz_gh_factor(1.1), verbose(false), input_file(NULL),
54 {
55 bkz_flags = 0;
56 bkz_max_loops = 0;
57 bkz_max_time = 0;
58 }
63 double delta;
64 double eta;
67 bool siegel;
68
69 bool no_lll;
81
82 bool verbose;
83 const char *input_file;
84 const char *output_format;
85
86 double theta;
87 double c;
88};
89
90#endif
const double LLL_DEF_DELTA
Definition: defs.h:143
const double LLL_DEF_ETA
Definition: defs.h:144
LLLMethod
Definition: defs.h:187
@ LM_WRAPPER
Definition: defs.h:188
const double HLLL_DEF_C
Definition: defs.h:151
FloatType
Definition: defs.h:210
@ FT_DEFAULT
Definition: defs.h:211
IntType
Definition: defs.h:201
@ ZT_MPZ
Definition: defs.h:202
const double HLLL_DEF_THETA
Definition: defs.h:149
Action
Definition: main.h:37
@ ACTION_PRU
Definition: main.h:44
@ ACTION_HLLL
Definition: main.h:43
@ ACTION_SVP
Definition: main.h:41
@ ACTION_BKZ
Definition: main.h:40
@ ACTION_LLL
Definition: main.h:38
@ ACTION_HKZ
Definition: main.h:39
@ ACTION_CVP
Definition: main.h:42
Definition: main.h:48
int prune_start
Definition: main.h:73
double prune_pre_nodes
Definition: main.h:75
IntType int_type
Definition: main.h:61
LLLMethod method
Definition: main.h:60
double c
Definition: main.h:87
Action action
Definition: main.h:59
string bkz_strategy_file
Definition: main.h:80
double eta
Definition: main.h:64
double bkz_max_time
Definition: main.h:77
bool siegel
Definition: main.h:67
int prune_end
Definition: main.h:74
bool no_lll
Definition: main.h:69
string bkz_dump_gso_filename
Definition: main.h:78
Options()
Definition: main.h:49
bool verbose
Definition: main.h:82
int bkz_max_loops
Definition: main.h:72
const char * input_file
Definition: main.h:83
const char * output_format
Definition: main.h:84
double delta
Definition: main.h:63
FloatType float_type
Definition: main.h:62
double prune_min_prob
Definition: main.h:76
bool early_red
Definition: main.h:66
int bkz_flags
Definition: main.h:71
double bkz_gh_factor
Definition: main.h:79
double theta
Definition: main.h:86
int precision
Definition: main.h:65
int block_size
Definition: main.h:70